Skip to content

mikeroyal/Rust_lang-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation


Rust Guide

A guide covering the Rust programming language including the applications and tools that will make you a better and more efficient Rust developer.

Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.


Rust Learning Resources

Rust is a multi-paradigm programming language focused on performance and safety. Rust has a comparable amount of runtime to C and C++, and has set up its standard library to be amenable towards OS development. Specifically, the standard library is split into two parts: core and std. Core is the lowest-level aspects only, and doesn't include things like allocation, threading, and other higher-level features.

The Rust Language Reference

The Rust Programming Language Book

Learning Rust

Why AWS loves Rust

Rust Programming courses on Udemy

Safety in Systems Programming with Rust at Standford by Ryan Eberhardt

WebAssembly meets Kubernetes with Krustlet using Rust

Microsoft's Project Verona

Rust Tools and Frameworks

Cargo is a package manager that downloads your Rust project’s dependencies and compiles your project.

Crater is a tool to run experiments across parts of the Rust ecosystem. Its primary purpose is to detect regressions in the Rust compiler, and it does this by building a large number of crates, running their test suites and comparing the results between two versions of the Rust compiler. It can operate locally (with Docker as the only dependency) or distributed on the cloud. It can operate locally (with Docker as the only dependency) or distributed on the cloud.

VSCode-Rust is plugin that adds language support for Rust to Visual Studio Code. Rust support is powered by a separate language server - either by the official Rust Language Server (RLS) or rust-analyzer, depending on the user's preference. If you don't have it installed, the extension will install it for you (with permission). This extension is built and maintained by the Rust IDEs and editors team with the focus on providing a stable, high quality extension that makes the best use of the respective language server.

Apache Arrow is a development platform for in-memory analytics. It contains a set of technologies that enable big data systems to process and move data fast. Arrow's libraries are available for C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust.

Wasmer enables super lightweight containers based on WebAssembly that can run anywhere such as the Desktop to the Cloud and IoT devices, and also embedded in any programming language.

Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers. Firecracker has also been integrated in container runtimes, for example Kata Containers and Weaveworks Ignite.

Tokio is an event-driven, non-blocking I/O platform for writing asynchronous applications with the Rust programming language.

TiKV is an open-source distributed transactional key-value database that also provides classical key-vlue APIs, but also transactional APIs with ACID compliance.

Sonic is a fast, lightweight and schema-less search backend similar to Elasticsearch in some use-cases.

Hyper is a fast and correct HTTP library for Rust.

Rocket is an async web framework for Rust with a focus on usability, security, extensibility, and speed.

Clippy is a collection of lints to catch common mistakes and improve your Rust code.

Servo is a prototype web browser engine written in the Rust language.

Vector is a high-performance, end-to-end (agent & aggregator) observability data platform that puts the user in control of their observability data.

RustPython is a Python Interpreter written in Rust.

Miri is an interpreter for Rust's mid-level intermediate representation. It can run binaries and test suites of cargo projects and detect certain classes of undefined behavior. Miri will alsowill also tell you about memory leaks: when there is memory still allocated at the end of the execution, and that memory is not reachable from a global static, Miri will raise an error.

Chalk is an implementation and definition of the Rust trait system using a PROLOG-like logic solver.

stdarch is Rust's standard library vendor-specific APIs and run-time feature detection.

Simpleinfra is rep that contains the tools and automation written by the Rust infrastructure team to manage our services. Using some of the tools in this repo require privileges only infra team members have.

Rustlings is a small set of exercises to get you used to reading and writing Rust code.

Krustlet acts as a Kubernetes Kubelet(written in Rust) by listening on the event stream for new pods that the scheduler assigns to it based on specific Kubernetes tolerations. The project is currently experimental.

Rust-based Operating Systems

Redox is a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications. Acitvely being developed by Jeremy Soeller.

Bottlerocket OS is an open-source Linux-based operating system meant for hosting containers. Bottlerocket focuses on security and maintainability, providing a reliable, consistent, and safe platform for container-based workloads.

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety, type safety and strict aliasing. Tock uses Rust to protect the kernel (the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel.

Rust on Chrome OS is a document that provides information on creating Rust projects for installation within Chrome OS and Chrome OS SDK.

Writing an OS in Rust is a blog series creates a small operating system in the Rust programming language by Philipp Oppermann.

Contribute

  • If would you like to contribute to this guide simply make a Pull Request.

License

Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.