/wg

Coordination repository of the embedded devices Working Group

Embedded devices Working Group

Coordination repository of the embedded devices Working Group (WG)

This repository issue tracker is used by the embedded WG to coordinate efforts towards making Rust a great choice for embedded development.

Vision

What is it that we really want? At a broad level:

  • To improve the absolute quality (functionality, safety, performance) of embedded software in the wild.
  • To improve the productivity of embedded software development teams, by reducing the tangible and intangible costs of achieving a level of quality.
  • To improve the experience for programmers developing for embedded systems.
  • To make embedded systems programming more accessible for people that are not already embedded systems developers.

Organization

The WG is composed of a lead and several teams whose functions are defined in RFC #136. The embedded WG develops and maintains a large set of projects under the rust-embedded organization. This section lists all the teams and all the projects owned by the WG.

The WG lead

@japaric is the current lead of the embedded WG. His functions are:

  • Representing the WG in meetings where other Rust teams participate.
  • Communicating the needs of the embedded Rust community (e.g. language features, core API stabilization) to the Rust teams.
  • Giving the casting vote on intra-WG decisions where no voting majority can be achieved.

The Cortex-M team

The Cortex-M team develops and maintains the core of the Cortex-M crate ecosystem.

Members

Projects

Projects maintained by this team.

The embedded Linux team

The embedded Linux team develops and maintains the core of the embedded Linux crate ecosystem.

Members

Projects

Projects maintained by the embedded Linux team

The HAL team

The HAL team develops and maintains crates that ease the development of Hardware Abstraction Layers, Board Support Crates and drivers.

Members

Projects

Projects maintained by the HAL team.

The MSP430 team

The MS430 team develops and maintains the core of the MSP430 crate ecosystem.

Members

Projects

Projects maintained by this team

The RISCV team

The RISCV team develops and maintains the core of the RISCV crate ecosystem.

Members

Projects

Projects maintained by this team

The resources team

The resources team develops, maintains and curates resources on embedded Rust.

Members

Projects

Projects maintained by the resources team

The tools team

The tools team maintains and develops core embedded tools.

Members

Projects

Projects maintained by the tools team

The old guard

This list is the membership of the embedded WG when it was first created and it's kept around for historical purposes. All the people in this list are members of the rust-embedded organization and most of them are members of one of the teams listed above.

Contact

You can usually find the members of the embedded WG on the #rust-embedded channel (server: irc.mozilla.org).

Other projects

These are other projects you may be interested in but that (currently) are not owned by the WG.

On going community efforts

embedded-hal is a project that aims to build a standard set of traits (interfaces) for I/O functionality common in embedded devices: Serial, I2C, etc. with the goal of serving as a base for building reusable driver crates, crates to interface with external components like sensors.

There are plenty of traits that still need to be designed, in particular ones that involve async I/O. Join the discussion and help us design the missing traits so that they'll fulfill your needs.

To put the embedded-hal to test and to expand the embedded crates.io ecosystem we are running the weekly driver initiative. The goal is to release a new no_std, generic, embedded-hal driver crate every one or two weeks.

There's lots of cool devices that would be great to have drivers for. Join the initiative and help us grow the embedded crates.io ecosystem!

The community is building a curated list of crates useful for embedded development. In this list you'll find driver crates, board support crates and general purpose no-std crates. Help us improve this list by adding your crate via PR or by tackling any of our help wanted issues.

Help wanted!

These issues need your help!

RFCs

When the team deems it necessary the RFC process may be used to make decisions or to design processes, user interfaces, APIs, etc.

Learn more about the Rust's RFC process (which is the same as our own) here.

To create an RFC, simply:

  • clone this repo to your own personal one
  • copy 0000-template.md to text/0000-my-feature.md (where "my-feature" is descriptive. Don't assign an RFC number yet)
  • fill in the details of your RFC in that file
  • Open an pull request with this repository