Project Description

Join an instructor-led bootcamp to explore the Rust programming language in two-hour sessions each day throughout Hackweek. Sessions will be between 7-10am Pacific, 3-6pm Central Europe (exact time will be determined as we get closer)

Goal for this Hackweek

We want to raise awareness of Rust and give hands-on experience over HackWeek. If the attendees want to hack together on a Rust project, I'm fully in support of that.

Resources

Why Rust? https://confluence.suse.com/x/GYJiKQ

Update

*Our instructor will be Anatol Ulrich of Ferrous systems.

*We will be recording these sessions and posting them in the HackWeek Stream

*We have a rocketchat room #RustBootcampHackWeek20

*More about the company running the training https://ferrous-systems.com/

*More about Rust: https://www.rust-lang.org/

Looking for hackers with the skills:

rust learning fun exploration growth

This project is part of:

Hack Week 20

Activity

  • over 3 years ago: tjyrinki_suse liked this project.
  • over 3 years ago: cdywan disliked this project.
  • over 3 years ago: zbenjamin liked this project.
  • over 3 years ago: zbenjamin disliked this project.
  • almost 4 years ago: cdywan liked this project.
  • almost 4 years ago: cdywan disliked this project.
  • over 4 years ago: slahl joined this project.
  • over 4 years ago: slahl liked this project.
  • over 4 years ago: bchou liked this project.
  • over 4 years ago: ohollmann joined this project.
  • over 4 years ago: pstivanin left this project.
  • over 4 years ago: jesusbv joined this project.
  • over 4 years ago: gkurel_suse joined this project.
  • over 4 years ago: deneb_alpha left this project.
  • over 4 years ago: lcaparroz liked this project.
  • over 4 years ago: mvidner joined this project.
  • over 4 years ago: lpato joined this project.
  • over 4 years ago: lpato liked this project.
  • over 4 years ago: dpeng joined this project.
  • over 4 years ago: pdamle joined this project.
  • over 4 years ago: chajain joined this project.
  • over 4 years ago: izavaletaescalante left this project.
  • over 4 years ago: pvorel liked this project.
  • over 4 years ago: csalmond joined this project.
  • over 4 years ago: tiwai joined this project.
  • All Activity

    Comments

    • gfilippetti
      over 4 years ago by gfilippetti | Reply

      I'm interested :)

    • csalmond
      over 4 years ago by csalmond | Reply

      Does anyone know if SUSE has plans to use/include Rust in distros?

      • agraul
        over 4 years ago by agraul | Reply

        Rust is already part of SLE 15 (see SMELT), openSUSE Leap 15 and, of course, openSUSE Tumbleweed add-emoji

    • locilka
      over 4 years ago by locilka | Reply

      Could you PLS record these sessions? I guess we might later have some new employees interested in it too.

      • SMorlan
        over 4 years ago by SMorlan | Reply

        We will request the ability to record these. We're also talking about putting this on the list for the next HackWeek, as well.

    • SMorlan
      over 4 years ago by SMorlan | Reply

      Wow! Thanks for all the interest! We were quoted for a group of 10-12, but we're working on expanding to include more.

    • ikapelyukhin
      over 4 years ago by ikapelyukhin | Reply

      "We're gonna need a bigger boat" add-emoji

    • jguilhermevanz
      over 4 years ago by jguilhermevanz | Reply

      I think is a good idea to have the environment ready for the sessions. Which version of Rust and tools do we need?

    • ancorgs
      over 4 years ago by ancorgs | Reply

      There is more concrete and up-to-date information about the final schedule and/or whether we all fit?

    • SMorlan
      over 4 years ago by SMorlan | Reply

      I will be sending out invites to the sessions tonight or tomorrow (US time). We can have 15 people in the session, so some latecomers will not be included. I have already started talking to Olli about just planning for another session for this during next Hack Week. With earlier planning we may be able to get separate sessions in geo locations and maybe full-day sessions.

    • SMorlan
      over 4 years ago by SMorlan | Reply

      We will get to record and share the sessions.

    • cdywan
      over 4 years ago by cdywan | Reply

      Seems I "was not in the 15 signups". Bummer. This would've been the perfect combo with the rust-based project I'm on for the hackweek

    • glaubitz
      over 4 years ago by glaubitz | Reply

      Is there still a way to follow these sessions? Passive participation would be sufficient for me.

    Similar Projects

    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/


    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/


    RMT.rs: High-Performance Registration Path for RMT using Rust by gbasso

    Description

    The SUSE Repository Mirroring Tool (RMT) is a critical component for managing software updates and subscriptions, especially for our Public Cloud Team (PCT). In a cloud environment, hundreds or even thousands of new SUSE instances (VPS/EC2) can be provisioned simultaneously. Each new instance attempts to register against an RMT server, creating a "thundering herd" scenario.

    We have observed that the current RMT server, written in Ruby, faces performance issues under this high-concurrency registration load. This can lead to request overhead, slow registration times, and outright registration failures, delaying the readiness of new cloud instances.

    This Hackweek project aims to explore a solution by re-implementing the performance-critical registration path in Rust. The goal is to leverage Rust's high performance, memory safety, and first-class concurrency handling to create an alternative registration endpoint that is fast, reliable, and can gracefully manage massive, simultaneous request spikes.

    The new Rust module will be integrated into the existing RMT Ruby application, allowing us to directly compare the performance of both implementations.

    Goals

    The primary objective is to build and benchmark a high-performance Rust-based alternative for the RMT server registration endpoint.

    Key goals for the week:

    1. Analyze & Identify: Dive into the SUSE/rmt Ruby codebase to identify and map out the exact critical path for server registration (e.g., controllers, services, database interactions).
    2. Develop in Rust: Implement a functionally equivalent version of this registration logic in Rust.
    3. Integrate: Explore and implement a method for Ruby/Rust integration to "hot-wire" the new Rust module into the RMT application. This may involve using FFI, or libraries like rb-sys or magnus.
    4. Benchmark: Create a benchmarking script (e.g., using k6, ab, or a custom tool) that simulates the high-concurrency registration load from thousands of clients.
    5. Compare & Present: Conduct a comparative performance analysis (requests per second, latency, success/error rates, CPU/memory usage) between the original Ruby path and the new Rust path. The deliverable will be this data and a summary of the findings.

    Resources

    • RMT Source Code (Ruby):
      • https://github.com/SUSE/rmt
    • RMT Documentation:
      • https://documentation.suse.com/sles/15-SP7/html/SLES-all/book-rmt.html
    • Tooling & Stacks:
      • RMT/Ruby development environment (for running the base RMT)
      • Rust development environment (rustup, cargo)
    • Potential Integration Libraries:
      • rb-sys: https://github.com/oxidize-rb/rb-sys
      • Magnus: https://github.com/matsadler/magnus
    • Benchmarking Tools:
      • k6 (https://k6.io/)
      • ab (ApacheBench)


    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.


    Mail client with mailing list workflow support in Rust by acervesato

    Description

    To create a mail user interface using Rust programming language, supporting mailing list patches workflow. I know, aerc is already there, but I would like to create something simpler, without integrated protocols. Just a plain user interface that is using some crates to read and create emails which are fetched and sent via external tools.

    I already know Rust, but not the async support, which is needed in this case in order to handle events inside the mail folder and to send notifications.

    Goals

    • simple user interface in the style of aerc, with some vim keybindings for motions and search
    • automatic run of external tools (like mbsync) for checking emails
    • automatic run commands for notifications
    • apply patch set from ML
    • tree-sitter support with styles

    Resources

    • ratatui: user interface (https://ratatui.rs/)
    • notify: folder watcher (https://docs.rs/notify/latest/notify/)
    • mail-parser: parser for emails (https://crates.io/crates/mail-parser)
    • mail-builder: create emails in proper format (https://docs.rs/mail-builder/latest/mail_builder/)
    • gitpatch: ML support (https://crates.io/crates/gitpatch)
    • tree-sitter-rust: support for mail format (https://crates.io/crates/tree-sitter)


    Advent of Code: The Diaries by amanzini

    Description

    It was the Night Before Compile Time ...

    Hackweek 25 (December 1-5) perfectly coincides with the first five days of Advent of Code 2025. This project will leverage this overlap to participate in the event in real-time.

    To add a layer of challenge and exploration (in the true spirit of Hackweek), the puzzles will be solved using a non-mainstream, modern language like Ruby, D, Crystal, Gleam or Zig.

    The primary project intent is not just simply to solve the puzzles, but to exercise result sharing and documentation. I'd create a public-facing repository documenting the process. This involves treating each day's puzzle as a mini-project: solving it, then documenting the solution with detailed write-ups, analysis of the language's performance and ergonomics, and visualizations.

                                   |
                                 \ ' /
                               -- (*) --
                                  >*<
                                 >0<@<
                                >>>@<<*
                               >@>*<0<<<
                              >*>>@<<<@<<
                             >@>>0<<<*<<@<
                            >*>>0<<@<<<@<<<
                           >@>>*<<@<>*<<0<*<
             \*/          >0>>*<<@<>0><<*<@<<
         ___\\U//___     >*>>@><0<<*>>@><*<0<<
         |\\ | | \\|    >@>>0<*<0>>@<<0<<<*<@<<
         | \\| | _(UU)_ >((*))_>0><*<0><@<<<0<*<
         |\ \| || / //||.*.*.*.|>>@<<*<<@>><0<<<
         |\\_|_|&&_// ||*.*.*.*|_\\db//_
         """"|'.'.'.|~~|.*.*.*|     ____|_
             |'.'.'.|   ^^^^^^|____|>>>>>>|
             ~~~~~~~~         '""""`------'
    ------------------------------------------------
    This ASCII pic can be found at
    https://asciiart.website/art/1831
    
    

    Goals

    Code, Docs, and Memes: An AoC Story

    • Have fun!

    • Involve more people, play together

    • Solve Days 1-5: Successfully solve both parts of the Advent of Code 2025 puzzles for Days 1-5 using the chosen non-mainstream language.

    • Daily Documentation & Language Review: Publish a detailed write-up for each day. This documentation will include the solution analysis, the chosen algorithm, and specific commentary on the language's ergonomics, performance, and standard library for the given task.


    Kubernetes-Based ML Lifecycle Automation by lmiranda

    Description

    This project aims to build a complete end-to-end Machine Learning pipeline running entirely on Kubernetes, using Go, and containerized ML components.

    The pipeline will automate the lifecycle of a machine learning model, including:

    • Data ingestion/collection
    • Model training as a Kubernetes Job
    • Model artifact storage in an S3-compatible registry (e.g. Minio)
    • A Go-based deployment controller that automatically deploys new model versions to Kubernetes using Rancher
    • A lightweight inference service that loads and serves the latest model
    • Monitoring of model performance and service health through Prometheus/Grafana

    The outcome is a working prototype of an MLOps workflow that demonstrates how AI workloads can be trained, versioned, deployed, and monitored using the Kubernetes ecosystem.

    Goals

    By the end of Hack Week, the project should:

    1. Produce a fully functional ML pipeline running on Kubernetes with:

      • Data collection job
      • Training job container
      • Storage and versioning of trained models
      • Automated deployment of new model versions
      • Model inference API service
      • Basic monitoring dashboards
    2. Showcase a Go-based deployment automation component, which scans the model registry and automatically generates & applies Kubernetes manifests for new model versions.

    3. Enable continuous improvement by making the system modular and extensible (e.g., additional models, metrics, autoscaling, or drift detection can be added later).

    4. Prepare a short demo explaining the end-to-end process and how new models flow through the system.

    Resources

    Project Repository