• Stars
    star
    177
  • Rank 215,985 (Top 5 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Embedded Network Abstraction Layer

embedded-nal

An Embedded Network Abstraction Layer

This crate defines a simple set of traits that can be implemented by almost any TCP/IP stack. This might be an on-chip stack like smoltcp, or it could be an off-chip TCP/IP stack on an AT modem.

API reference

How-to: add a new trait

This is the suggested approach to adding a new trait to embedded-nal

Research / Discussion

Ideally, before proposing a new trait, or set of traits, you should check for an existing issue suggesting the need for the trait, as well as any related works / use cases / requirements that are useful to consider in the design of the trait.

These issues will be labeled as discussion in the issue tracker.

Implementation / Demonstration

Proposed traits should then be implemented and demonstrated, either by forking embedded-nal or by creating a new crate with the intent of integrating this into embedded-nal once the traits have stabilized. You may find cargo workspaces and patch useful for the forking approach.

Proposing a trait

Once the trait has been demonstrated a PR should be opened to merge the new trait(s) into embedded-nal. This should include a link to the previous discussion issue.

If there is determined to be more than one alternative then there should be further discussion to try to single out the best option. Once there is consensus this will be merged into the embedded-nal repository.

These issues / PRs will be labeled as proposals in the issue tracker.

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.53.0 and up. It might compile with older versions but that may change in any new patch release.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

More Repositories

1

usb-device

Experimental device-side USB framework for microcontrollers in Rust.
Rust
425
star
2

ssd1306

SSD1306 OLED driver
Rust
305
star
3

embedded-sdmmc-rs

A SD/MMC library with FAT16/FAT32 support, suitable for Embedded Rust systems
Rust
302
star
4

serde-json-core

`serde-json` for `no_std` programs
Rust
159
star
5

async-on-embedded

Rust
123
star
6

usbd-serial

Work-in progress minimal CDC-ACM (USB serial port) class for usb-device
Rust
114
star
7

pc-keyboard

PS/2 Keyboard Decoder in Rust
Rust
93
star
8

embedded-storage

An Embedded Storage Abstraction Layer
Rust
64
star
9

menu

Command-line menu system for embedded Rust platforms.
Rust
44
star
10

usbd-midi

Rust
44
star
11

tinyrlibc

Tiny C library written in Rust
Rust
41
star
12

tm4c-hal

An Embedded HAL and general chip support for the TM4C123/LM4F120. Replaces the old lm4f120 crate.
Rust
40
star
13

sh1106

SH1106 driver for use with embedded_hal and (optionally) embedded_graphics
Rust
32
star
14

aligned

A newtype with alignment of at least `A` bytes
Rust
30
star
15

sensehat-rs

Rust support for the Raspberry Pi Sense Hat
Rust
27
star
16

multi-map

Like a Rust std::collection::HashMap, but allows you to use either of two different keys to retrieve items.
Rust
26
star
17

ssd1331

SSD1331 colour OLED display driver for embedded Rust applications using embedded-hal
Rust
17
star
18

hash32

32-bit hashing machinery
Rust
10
star
19

meta

Details about the rust-embedded-community project
10
star
20

tb6612fng-rs

A pure rust `no_std` driver for the TB6612FNG motor driver.
Rust
4
star
21

adafruit-bluefruit-protocol-rs

A `no_std` parser for the Adafruit Bluefruit LE Connect controller protocol.
Rust
2
star