197 Repositories
Rust embedded-systems Libraries
probe-run is a custom Cargo runner that transparently runs Rust firmware on an embedded device
probe-run Runs embedded programs just like native ones probe-run is a custom Cargo runner that transparently runs Rust firmware on an embedded device.
defmt is a highly efficient logging framework that targets resource-constrained devices, like microcontrollers
defmt defmt ("de format", short for "deferred formatting") is a highly efficient logging framework that targets resource-constrained devices, like mic
Adds zero-cost stack overflow protection to your embedded programs
flip-link adds zero-cost stack overflow protection to your embedded programs The problem Bare metal Rust programs may not be memory safe in presence o
Quickly set up a `probe-run` + `defmt` + `flip-link` embedded project
app-template Quickly set up a probe-run + defmt + flip-link embedded project Dependencies 1. flip-link: $ cargo install flip-link 2. probe-run: $ # ma
a test harness for embedded devices
defmt-test a test harness for embedded devices This crate has been moved to the defmt repository Support defmt-test is part of the Knurling project, F
A compatibility layer to smooth the transition between different versions of embedded-hal
Embedded HAL Compatibility Layer A compatibility layer to smooth the transition between different versions of embedded-hal (specifically 0.2.x and 1.0
This project is based on code from freertos.rs and some additions to simplify the usage of FreeRTOS in embedded applications written in Rust
FreeRTOS-rust This project is based on code from freertos.rs and some additions to simplify the usage of FreeRTOS in embedded applications written in
A concurrency framework for building real-time systems
Real-Time Interrupt-driven Concurrency A concurrency framework for building real-time systems. Formerly known as Real-Time For the Masses. Features Ta
Cap'n Proto is a type system for distributed systems
Cap'n Proto for Rust documentation blog Introduction Cap'n Proto is a type system for distributed systems. With Cap'n Proto, you describe your data an
Bevy plugin for an AssetServer that can load embedded resources, or use other AssetServers based on the path.
Bevy-Embasset Embed your asset folder inside your binary. bevy-embasset adds support for loading assets embedded into the binary. Furthermore, it can
A flexible simple theme manager for *nix systems
tema A theme manager for *nix systems respecting the FHS spec configuration As of now all the configuration is done via $XDG_CONFIG_HOME/tema/config.y
Embedded Distributed Encrypted Database (Research).
EDED Embedded Distributed Encrypted Database. Research projects to support ESSE. WIP Distributed design features Adapt to personal distributed usecase
Raft distributed consensus algorithm implemented in Rust.
Raft Problem and Importance When building a distributed system one principal goal is often to build in fault-tolerance. That is, if one particular nod
OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.
OpenZKP OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems. Overview Project current implements 🐺 the Stark protocol (see its readme
Embedded Rust arithmetic, 2D/3D vector, and statistics library
Embedded-friendly (i.e. no_std) Rust math library featuring fast, safe floating point approximations for common arithmetic operations, trigonometry, 2D/3D vector types, statistical analysis, and quaternions.
A recommender systems framework for Rust
Quackin Release the quackin! 🦆 Quackin is a recommender systems framework written in Rust. This is a young project, which means two things: There wil
open source training courses about distributed database and distributed systemes
Welcome to learn Talent Plan Courses! Talent Plan is an open source training program initiated by PingCAP. It aims to create or combine some open sour
a collection of well-tested, serializable CRDTs for Rust
crdts: family of thoroughly tested hybrid crdt's. A family of CRDT's supporting both State and Op based replication. what is a CRDT? CRDT's are the so
Sled - the champagne of beta embedded databases
key value buy a coffee for us to convert into databases documentation chat about databases with us sled - it's all downhill from here!!! An embedded d
Moca-hcho - Bluetooth 5 BLE formaldehyde/temperature/humidity sensor beacon
moca-hcho: Bluetooth 5 BLE formaldehyde/temperature/humidity sensor beacon moca-hcho is a simple Bluetooth Low Energy sensor beacon that uses a Sensir
Canary - Distributed systems library for making communications through the network easier, while keeping minimalism and flexibility.
Canary Canary is a distributed systems and communications framework, focusing on minimalism, ease of use and performance. Development of Canary utiliz
Freebsd-embedded-hal - Like linux-embedded-hal but FreeBSD
freebsd-embedded-hal Implementation of embedded-hal traits for FreeBSD devices: gpio: using libgpio, with stateful and toggleable support, with suppor
Gomez - A pure Rust framework and implementation of (derivative-free) methods for solving nonlinear (bound-constrained) systems of equations
Gomez A pure Rust framework and implementation of (derivative-free) methods for solving nonlinear (bound-constrained) systems of equations. Warning: T
A library for extracting #[no_mangle] pub extern "C" functions (https://docs.rust-embedded.org/book/interoperability/rust-with-c.html#no_mangle)
A library for extracting #[no_mangle] pub extern "C" functions In order to expose a function with C binary interface for interoperability with other p
Simple DHCP client for the Wiznet W5500 internet offload chip.
w5500-dhcp Simple DHCP client for the Wiznet W5500 SPI internet offload chip. Warning Please proceed with caution, and review the code before use in a
An asynchronous Hardware Abstraction Layer (HAL) for embedded systems
embedded-hal-async An asynchronous Hardware Abstraction Layer (HAL) for embedded systems. This crate contains asynchronous versions of the embedded-ha
An embedded key-value storage for learning purpose, which is based on the idea of SSTable / LSM-tree.
Nouzdb An embedded key-value storage for learning purpose, which is based on the idea of SSTable / LSM-tree. Plan Implement a memtable. Implement the
Register access crate for AVR microcontrollers
avr-device Auto-generated wrappers around registers for AVR microcontrollers. Usage Add the following to Cargo.toml: [dependencies.avr-device] version
Low level access to ATmega32U4 registers in Rust
Deprecation Note: This crate will soon be deprecated in favor of avr-device. The approach of generating the svd from hand-written register definitions
Hardware Abstraction Layer for ATmega32U4
Deprecation Note: This crate will soon be deprecated in favor of avr-hal. avr-hal is a new approach to writing the HAL crate, that was designed with s
A guide for Mozilla's developers and data scientists to analyze and interpret the data gathered by our data collection systems.
Mozilla Data Documentation This documentation was written to help Mozillians analyze and interpret data collected by our products, such as Firefox and
Minimal and persistent key-value store designed with security in mind
microkv Minimal and persistent key-value store designed with security in mind. Introduction microkv is a persistent key-value store implemented in Rus
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
OpenSK This repository contains a Rust implementation of a FIDO2 authenticator. We developed OpenSK as a Tock OS application. We intend to bring a ful
[Proof of Concept] Embedded functional scripting language with YAML ¯\_(ツ)_/¯
[YAML, fun] Just an experimental project implementing embedded functional scripting language based on YAML syntax. API docs for the standard library:
C API to SpringQL (for embedded mode)
SpringQL C Client This repository is a C client for SpringQL and provides it provides: springql.h: C header file. libspringql_client.{so,dylib}: Share
Hubris is a microcontroller operating environment designed for deeply-embedded systems
A lightweight, memory-protected, message-passing kernel for deeply embedded systems.
Portable linked-list allocator designed for baremetal systems
Palloc Portable linked-list allocator for embedded / baremetal systems. Using the crate Include this in the [dependencies] section of Cargo.toml pallo
Verified Rust for low-level systems code
See Goals for a brief description of the project's goals. Building the project The main project source is in source. tools contains scripts for settin
cargo extension for flashing embedded rust programs via dfu based on jacobrosenthals cargo-hf2
cargo-dfu This crate provides a cargo subcommand to flash ELF binaries via dfu Most STM chips will probably work with this, although you might need to
Nimbus is a framework for building parachain consensus systems on cumulus-based parachains.
Cumulo -- Nimbus ⛈️ Nimbus is a framework for building parachain consensus systems on cumulus-based parachains. Given the regular six-second pulse-lik
`fugit` provides a comprehensive library of `Duration` and `Instant` for the handling of time in embedded systems, doing all it can at compile time.
fugit fugit provides a comprehensive library of Duration and Instant for the handling of time in embedded systems, doing all it can at compile time. T
QueingSimulator is an application that can be used to build intuitions about behavior of synchronous request/reply systems
Queueing Simulator QueingSimulator is an application that can be used to build intuitions about behavior of synchronous request/reply systems (such as
Rust driver for the Blues.io Notecard
Rust driver for notecard This is a rust driver for the blues.io notecard based on embedded-hal. use notecard::Note; let mut note = Note::new(i2c); no
Scalable and encrypted embedded database with 3-tier caching
Infinitree is a versioned, embedded database that uses uniform, encrypted blobs to store data.
Source code for our paper "Higher-order finite elements for embedded simulation"
Higher-order Finite Elements for Embedded Simulation This repository contains the source code used to produce the results for our paper: Longva, A., L
Buildomat manages the provisioning of ephemeral UNIX systems on which to run software builds
B U I L D O M A T a software build labour-saving device Buildomat manages the provisioning of ephemeral UNIX systems (e.g., instances in AWS EC2) on w
Crate of GitHub’s collection of gitignores, embedded, automatically updated
Gitignores GitHub’s collection of gitignores, embedded, automatically updated. API documentation. Public Domain via CC0-1.0 (same as source data). MSR
The labs of Raft consensus algorithm based on MadSim.
MadRaft The labs of Raft consensus algorithm based on MadSim. Some codes are derived from MIT 6.824 and PingCAP Talent Plan: Raft Lab. Thanks for thei
Embedded graph database
CQLite An embedded graph database implemented in Rust. This is currently a pre-release. It has not been extensively tested with 'real-world work-loads
Embedded graph database
CQLite An embedded graph database implemented in Rust. This is currently a pre-release. It has not been extensively tested with 'real-world work-loads
Dog command for *nix systems, Rust port of dog.
dog-rs Dog command for *nix systems, Rust port of dog. Because there is a cat command, should be a dog command too. It was written completely using VS
Learn to write an embedded OS in Rust
Operating System development tutorials in Rust on the Raspberry Pi
DSP algorithms for embedded. Often integer math.
This crate contains some tuned DSP algorithms for general and especially embedded use.
The lightest distributed consensus library. Run your own replicated state machine! ❤️
Little Raft The lightest distributed consensus library. Run your own replicated state machine! ❤️ Installing Simply import the crate. In your Cargo.to
RedisLess is a fast, lightweight, embedded and scalable in-memory Key/Value store library compatible with the Redis API.
RedisLess is a fast, lightweight, embedded and scalable in-memory Key/Value store library compatible with the Redis API.
Magical Automatic Deterministic Simulator for distributed systems in Rust.
MadSim Magical Automatic Deterministic Simulator for distributed systems. Deterministic simulation MadSim is a Rust async runtime similar to tokio, bu
delicate A lightweight and distributed task scheduling platform written in rust
A lightweight and distributed task scheduling platform written in rust.
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
OpenSK This repository contains a Rust implementation of a FIDO2 authenticator. We developed this as a Tock OS application and it has been successfull
SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.
SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.
Deep recommender systems for Rust
sbr An implementation of sequence recommenders based on the wyrm autdifferentiaton library. sbr-rs sbr implements efficient recommender algorithms whi
Xaynet represents an agnostic Federated Machine Learning framework to build privacy-preserving AI applications.
xaynet Xaynet: Train on the Edge with Federated Learning Want a framework that supports federated learning on the edge, in desktop browsers, integrate
sparse linear algebra library for rust
sprs, sparse matrices for Rust sprs implements some sparse matrix data structures and linear algebra algorithms in pure Rust. The API is a work in pro
A Simple debugger for embedded rust.
This is a debugger for embedded rust code. It is in an early state so it doesn't work for a lot of different microcontrollers.
a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle System.
bevy_prototype_particles This is a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle
Mote is a systems-programming language designed to be practical, performant, and simple.
Mote NOTE: this following lists the goals for what Mote is supposed to be. It does not promise that any of the features here will be accomplished or a
VSCode debug extension for probe-rs. It uses the MS DAP protocol to communicate directly with the probe (via probe-rs), and supports basic command line debugging in addition to VSCode UI.
VSCode debug extension for probe-rs. It uses the MS DAP protocol to communicate directly with the probe (via probe-rs), and supports basic command line debugging in addition to VSCode UI.
A model checker for implementing distributed systems.
A model checker for implementing distributed systems.
This is an implementation defining standard for client-side-validation
Client-side-validation Foundation Libraries This is an implementation defining standard of client-side-validation representing a set of its Foundation
QEMU platform SBI support implementation, using RustSBI
QEMU support using RustSBI Compile and run with: cargo qemu When running cargo qemu, the test kernel will build and run. Expected output should be: xt
Rustpad is an efficient and minimal collaborative code editor, self-hosted, no database required
Rustpad is an efficient and minimal open-source collaborative text editor based on the operational transformation algorithm
A single-threaded polling-based Rust async executor suitable for use in games, embedded systems or WASM.
simple async local executor An Enlightware® software. Overview A single-threaded polling-based executor suitable for use in games, embedded systems or
A library that makes it VERY easy to run Holochain as a library, from your own binary, with great defaults
embedded-holochain-runner A library that makes it VERY easy to run Holochain as a library, from your own binary, with great defaults How it will work
Rust implementation to simply convert between coordinate systems
GeoMorph Simple conversion between different coordinate systems without external wrappers
RiteRaft - A raft framework, for regular people
RiteRaft - A raft framework, for regular people This is an attempt to create a layer on top of tikv/raft-rs, that is easier to use and implement. This
Cassette A simple, single-future, non-blocking executor intended for building state machines.
Cassette A simple, single-future, non-blocking executor intended for building state machines. Designed to be no-std and embedded friendly. This execut
Compile-time creation of neural networks
Mushin: Compile-time creation of neural networks Mushin is a Japanese term used in martial arts that refers to the state of mind obtained by practice.
Rhai - An embedded scripting language for Rust.
Rhai is an embedded scripting language and evaluation engine for Rust that gives a safe and easy way to add scripting to any application.
Xaynet represents an agnostic Federated Machine Learning framework to build privacy-preserving AI applications.
xaynet Xaynet: Train on the Edge with Federated Learning Want a framework that supports federated learning on the edge, in desktop browsers, integrate
memory-mapped registers for x86_64 systems
regmap some well-known and known-to-be-good computer architectures, such as the Microchip PIC product line, or many of the AVR processor family, were
A prototype implementation of the Host Identity Protocol v2 for bare-metal systems, written in pure-rust.
Host Identity Protocol for bare-metal systems, using Rust I've been evaluating TLS replacements in constrained environments for a while now. Embedded
Operating System development tutorials in Rust on the Raspberry Pi
Operating System development tutorials in Rust on the Raspberry Pi
Modern Cryptographic Firmware
Trussed® Modern Cryptographic Firmware Status Very much WIP. Actively developed. Unstable APIs.
A Rust Embedded-HAL for the rp series microcontrollers
rp-hal A Rust HAL impl for the RP family of microcontrollers from the Raspberry Pi Foundation Explore the docs » View Demo · Report Bug · Request Feat
Trying embedded Rust on the Pinecil GD32VF103 RISC-V device.
Pinecil GD32VF103 RISC-V Rust Demos My personal collection of Rust demos running on the PINE64 Pinecil portable soldering iron, featuring a GD32VF103T
Simple, async embedded Rust
Cntrlr - Simple, asynchronous embedded Cntrlr is an all-in-one embedded platform for writing simple asynchronous applications on top of common hobbyis
Oso is an open source policy engine for authorization that’s embedded in your application
Oso What is Oso? Oso is an open source policy engine for authorization that’s embedded in your application. It provides a declarative policy language
Rhai - An embedded scripting language for Rust.
Rhai - Embedded Scripting for Rust Rhai is an embedded scripting language and evaluation engine for Rust that gives a safe and easy way to add scripti
A typed parser generator embedded in Rust code for Parsing Expression Grammars
Oak Compiled on the nightly channel of Rust. Use rustup for managing compiler channels. You can download and set up the exact same version of the comp
a smol tcp/ip stack
smoltcp smoltcp is a standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems. Its design goals are simplicity and rob
Rust crate for performing coordinate transforms
Synopsis A Rust crate use for performing coordinate transformations. The crate relies on nalgebra vectors to perform the coordinate transformations. C
Low-level Rust library for implementing terminal command line interface, like in embedded systems.
Terminal CLI Need to build an interactive command prompt, with commands, properties and with full autocomplete? This is for you. Example, output only
Experimental kernel for embedded devices written in Rust
bkernel is an experimental kernel for embedded devices written in Rust. I'm mostly trying out Rust now to see how it applies to kernel development. Pr
A secure embedded operating system for microcontrollers
Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded
A secure embedded operating system for microcontrollers
Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded
A comparison of operating systems written in Rust
Rust OS comparison A comparison of operating systems written in Rust. There are several open source operating systems written in Rust. Most of them ar
A client and server implementation of the OPC UA specification written in Rust
Introduction This is an OPC UA server / client API implementation for Rust. Linux Windows OPC UA is an industry standard for monitoring of data. It's
Materialize simplifies application development with streaming data. Incrementally-updated materialized views - in PostgreSQL and in real time. Materialize is powered by Timely Dataflow.
Materialize is a streaming database for real-time applications. Get started Check out our getting started guide. About Materialize lets you ask questi