Project Description

As I do not work as a developer per se, I love developing new code and learning new technologies that arise in this world. The Rust language is defined as Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency.

Goal for this Hackweek

During this Hackweek 21 I'd like to learn this "new" language and maybe take some challenges from codewars.com in order to check my results.

Resources

  • https://doc.rust-lang.org/book/
  • https://www.codewars.com

Looking for hackers with the skills:

rust

This project is part of:

Hack Week 21

Activity

  • about 3 years ago: mbolot left this project.
  • over 3 years ago: dsterba liked this project.
  • over 3 years ago: ravindrank joined this project.
  • over 3 years ago: dvenkatachala liked this project.
  • over 3 years ago: dvenkatachala joined this project.
  • over 3 years ago: afeijoo joined this project.
  • over 3 years ago: mbolot joined this project.
  • over 3 years ago: hhetter123 liked this project.
  • over 3 years ago: amanzini joined this project.
  • over 3 years ago: amanzini liked this project.
  • over 3 years ago: MSirringhaus liked this project.
  • over 3 years ago: jzerebecki liked this project.
  • over 3 years ago: jzerebecki left this project.
  • over 3 years ago: jzerebecki added keyword "rust" to this project.
  • over 3 years ago: jzerebecki joined this project.
  • over 3 years ago: pherranz started this project.
  • over 3 years ago: mbrugger liked this project.
  • over 3 years ago: pherranz originated this project.

  • Comments

    • amanzini
      over 3 years ago by amanzini | Reply

      I'm doing the same, exploring the Rust language using also these other resources:

      https://github.com/Dhghomon/easy_rust

      https://github.com/rust-lang/rustlings

      https://practice.rs/why-exercise.html

      :)

    • afeijoo
      over 3 years ago by afeijoo | Reply

      Me too, following: - https://doc.rust-lang.org/stable/rust-by-example/index.html

      I'm using Eclipse as IDE (https://www.eclipse.org/downloads/packages/release/photon/rc3/eclipse-ide-rust-developers), it's not the latest version, but it works fine.

    Similar Projects

    Learn a bit of embedded programming with Rust in a micro:bit v2 by aplanas

    Description

    micro:bit is a small single board computer with a ARM Cortex-M4 with the FPU extension, with a very constrain amount of memory and a bunch of sensors and leds.

    The board is very well documented, with schematics and code for all the features available, so is an excellent platform for learning embedded programming.

    Rust is a system programming language that can generate ARM code, and has crates (libraries) to access the micro:bit hardware. There is plenty documentation about how to make small programs that will run in the micro:bit.

    Goals

    Start learning about embedded programming in Rust, and maybe make some code to the small KS4036F Robot car from keyestudio.

    Resources

    Diary

    Day 1

    • Start reading https://mb2.implrust.com/abstraction-layers.html
    • Prepare the dev environment (cross compiler, probe-rs)
    • Flash first code in the board (blinky led)
    • Checking differences between BSP and HAL
    • Compile and install a more complex example, with stack protection
    • Reading about the simplicity of xtask, as alias for workspace execution
    • Reading the CPP code of the official micro:bit libraries. They have a font!

    Day 2

    • There are multiple BSP for the microbit. One is using async code for non-blocking operations
    • Download and study a bit the API for microbit-v2, the nRF official crate
    • Take a look of the KS4036F programming, seems that the communication is multiplexed via I2C
    • The motor speed can be selected via PWM (pulse with modulation): power it longer (high frequency), and it will increase the speed
    • Scrolling some text
    • Debug by printing! defmt is a crate that can be used with probe-rs to emit logs
    • Start reading input from the board: buttons
    • The logo can be touched and detected as a floating point value

    Day 3

    • A bit confused how to read the float value from a pin


    Learn how to use the Relm4 Rust GUI crate by xiaoguang_wang

    Relm4 is based on gtk4-rs and compatible with libadwaita. The gtk4-rs crate provides all the tools necessary to develop applications. Building on this foundation, Relm4 makes developing more idiomatic, simpler, and faster.

    https://github.com/Relm4/Relm4


    Looking at Rust if it could be an interesting programming language by jsmeix

    Get some basic understanding of Rust security related features from a general point of view.

    This Hack Week project is not to learn Rust to become a Rust programmer. This might happen later but it is not the goal of this Hack Week project.

    The goal of this Hack Week project is to evaluate if Rust could be an interesting programming language.

    An interesting programming language must make it easier to write code that is correct and stays correct when over time others maintain and enhance it than the opposite.


    Build a terminal user-interface (TUI) for Agama by IGonzalezSosa

    Description

    Officially, Agama offers two different user interfaces. On the one hand, we have the web-based interface, which is the one you see when you run the installation media. On the other hand, we have a command-line interface. In both cases, you can use them using a remote system, either using a browser or the agama CLI.

    We would expect most of the cases to be covered by this approach. However, if you cannot use the web-based interface and, for some reason, you cannot access the system through the network, your only option is to use the CLI. This interface offers a mechanism to modify Agama's configuration using an editor (vim, by default), but perhaps you might want to have a more user-friendly way.

    Goals

    The main goal of this project is to built a minimal terminal user-interface for Agama. This interface will allow the user to install the system providing just a few settings (selecting a product, a storage device and a user password). Then it should report the installation progress.

    Resources

    • https://agama-project.github.io/
    • https://ratatui.rs/

    Conclusions

    We have summarized our conclusions in a pull request. It includes screenshots ;-) We did not implement all the features we wanted, but we learn a lot during the process. We know that, if needed, we could write a TUI for Agama and we have an idea about how to build it. Good enough.


    Exploring Rust's potential: from basics to security by sferracci

    Description

    This project aims to conduct a focused investigation and practical application of the Rust programming language, with a specific emphasis on its security model. A key component will be identifying and understanding the most common vulnerabilities that can be found in Rust code.

    Goals

    Achieve a beginner/intermediate level of proficiency in writing Rust code. This will be measured by trying to solve LeetCode problems focusing on common data structures and algorithms. Study Rust vulnerabilities and learning best practices to avoid them.

    Resources

    Rust book: https://doc.rust-lang.org/book/