Skip to content

Commit b268c27

Browse files
committed
Reorganize READMEs
- Move "project-wide" stuff (CoC, legal boilerplate) to the main README. - List crates in main README.
1 parent a778f78 commit b268c27

File tree

6 files changed

+115
-125
lines changed

6 files changed

+115
-125
lines changed

README.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# `embedded-hal`
2+
3+
> A Hardware Abstraction Layer (HAL) for embedded systems
4+
5+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
6+
7+
## Scope
8+
9+
`embedded-hal` serves as a foundation for building an ecosystem of platform agnostic drivers.
10+
(driver meaning library crates that let a target platform interface an external device like a digital
11+
sensor or a wireless transceiver).
12+
13+
The advantage of this system is that by writing the driver as a generic library on top
14+
of `embedded-hal` driver authors can support any number of target
15+
platforms (e.g. Cortex-M microcontrollers, AVR microcontrollers, embedded Linux, etc.).
16+
17+
The advantage for application developers is that by adopting `embedded-hal` they can unlock all
18+
these drivers for their platform.
19+
20+
For functionality that goes beyond what is provided by `embedded-hal`, users are encouraged
21+
to use the target platform directly. Abstractions of common functionality can be proposed to be
22+
included into `embedded-hal` as described [in this guide](docs/how-to-add-a-new-trait.md), though.
23+
24+
See more about the design goals in [this documentation section](https://docs.rs/embedded-hal/latest/embedded_hal/#design-goals).
25+
26+
## Crates
27+
28+
The main `embedded-hal` project is not tied to a specific execution model like blocking or non-blocking.
29+
30+
| Crate | crates.io | Docs | |
31+
|-|-|-|-|
32+
| [embedded-hal](./embedded-hal) | [![crates.io](https://img.shields.io/crates/v/embedded-hal.svg)](https://crates.io/crates/embedded-hal) | [![Documentation](https://docs.rs/embedded-hal/badge.svg)](https://docs.rs/embedded-hal) | Core traits, blocking version |
33+
| [embedded-hal-async](./embedded-hal-async) | [![crates.io](https://img.shields.io/crates/v/embedded-hal-async.svg)](https://crates.io/crates/embedded-hal-async) | [![Documentation](https://docs.rs/embedded-hal-async/badge.svg)](https://docs.rs/embedded-hal-async) | Core traits, async version |
34+
| [embedded-hal-nb](./embedded-hal-nb) | [![crates.io](https://img.shields.io/crates/v/embedded-hal-nb.svg)](https://crates.io/crates/embedded-hal-nb) | [![Documentation](https://docs.rs/embedded-hal-nb/badge.svg)](https://docs.rs/embedded-hal-nb) | Core traits, polling version using the `nb` crate |
35+
| [embedded-hal-bus](./embedded-hal-bus) | [![crates.io](https://img.shields.io/crates/v/embedded-hal-bus.svg)](https://crates.io/crates/embedded-hal-bus) | [![Documentation](https://docs.rs/embedded-hal-bus/badge.svg)](https://docs.rs/embedded-hal-bus) | Utilities for sharing SPI and I2C buses |
36+
| [embedded-can](./embedded-can) | [![crates.io](https://img.shields.io/crates/v/embedded-can.svg)](https://crates.io/crates/embedded-can) | [![Documentation](https://docs.rs/embedded-can/badge.svg)](https://docs.rs/embedded-can) | Controller Area Network (CAN) traits |
37+
38+
## Releases
39+
40+
At the moment we are working towards a `1.0.0` release (see [#177]). During this process we will
41+
release alpha versions like `1.0.0-alpha.1` and `1.0.0-alpha.2`.
42+
Alpha releases are **not guaranteed** to be compatible with each other.
43+
They are provided as early previews for community testing and preparation for the final release.
44+
If you use an alpha release, we recommend you choose an exact version specification in your
45+
`Cargo.toml` like: `embedded-hal = "=1.0.0-alpha.8"`
46+
47+
See [this guide](docs/version-policy.md) for a way to implement both an `embedded-hal` `0.2.x`
48+
version and an `-alpha` version side by side in a HAL.
49+
50+
[#177]: https://github.com/rust-embedded/embedded-hal/issues/177
51+
52+
## Documents
53+
54+
- [How-to: add a new trait](docs/how-to-add-a-new-trait.md)
55+
- [Version policy](docs/version-policy.md)
56+
- [MSRV](docs/msrv.md)
57+
58+
## Implementations and drivers
59+
60+
For a non-exhaustive list of `embedded-hal` implementations and driver crates check the
61+
[awesome-embedded-rust] list.
62+
63+
You may be able to find even more HAL implementation crates and driver crates by searching for the
64+
[`embedded-hal-impl`], [`embedded-hal-driver`] and [`embedded-hal`][embedded-hal-kw] keywords
65+
on crates.io.
66+
67+
[`embedded-hal-impl`]: https://crates.io/keywords/embedded-hal-impl
68+
[`embedded-hal-driver`]: https://crates.io/keywords/embedded-hal-driver
69+
[embedded-hal-kw]: https://crates.io/keywords/embedded-hal
70+
71+
[awesome-embedded-rust]: https://github.com/rust-embedded/awesome-embedded-rust#driver-crates
72+
73+
## Minimum Supported Rust Version (MSRV)
74+
75+
This crate is guaranteed to compile on stable Rust 1.54 and up. It *might*
76+
compile with older versions but that may change in any new patch release.
77+
78+
See [here](docs/msrv.md) for details on how the MSRV may be upgraded.
79+
80+
## License
81+
82+
Licensed under either of
83+
84+
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
85+
http://www.apache.org/licenses/LICENSE-2.0)
86+
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
87+
88+
at your option.
89+
90+
### Contribution
91+
92+
Unless you explicitly state otherwise, any contribution intentionally submitted
93+
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
94+
dual licensed as above, without any additional terms or conditions.
95+
96+
## Code of Conduct
97+
98+
Contribution to this repository is organized under the terms of the [Rust Code of
99+
Conduct](CODE_OF_CONDUCT.md), the maintainers of this repository, the [HAL team](https://github.com/rust-embedded/wg#the-hal-team), promise
100+
to intervene to uphold that code of conduct.

embedded-can/README.md

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
[![crates.io](https://img.shields.io/crates/d/embedded-hal-nb.svg)](https://crates.io/crates/embedded-hal-nb)
2-
[![crates.io](https://img.shields.io/crates/v/embedded-hal-nb.svg)](https://crates.io/crates/embedded-hal-nb)
3-
[![Documentation](https://docs.rs/embedded-hal-nb/badge.svg)](https://docs.rs/embedded-hal-nb)
1+
[![crates.io](https://img.shields.io/crates/d/embedded-can.svg)](https://crates.io/crates/embedded-can)
2+
[![crates.io](https://img.shields.io/crates/v/embedded-can.svg)](https://crates.io/crates/embedded-can)
3+
[![Documentation](https://docs.rs/embedded-can/badge.svg)](https://docs.rs/embedded-can)
44
![Minimum Supported Rust Version](https://img.shields.io/badge/rustc-1.54+-blue.svg)
55

6-
# `embedded-hal-nb`
6+
# `embedded-can`
77

8-
A non-blocking Hardware Abstraction Layer (HAL) for embedded systems, using the `nb` crate.
8+
An embedded Controller Area Network (CAN) abstraction layer. This crate defines generic traits to be implemented by CAN driver and MCU HAL crates.
99

10-
This crate contains versions of some [`embedded-hal`] traits using `nb`, and shares its scope and [design goals].
11-
12-
This project is developed and maintained by the [HAL team][team].
10+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
1311

1412
## [API reference]
1513

16-
[API reference]: https://docs.rs/embedded-hal-nb
14+
[API reference]: https://docs.rs/embedded-can
1715

1816
## Minimum Supported Rust Version (MSRV)
1917

@@ -37,14 +35,3 @@ at your option.
3735
Unless you explicitly state otherwise, any contribution intentionally submitted
3836
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
3937
dual licensed as above, without any additional terms or conditions.
40-
41-
## Code of Conduct
42-
43-
Contribution to this crate is organized under the terms of the [Rust Code of
44-
Conduct][CoC], the maintainer of this crate, the [HAL team][team], promises
45-
to intervene to uphold that code of conduct.
46-
47-
[CoC]: ../CODE_OF_CONDUCT.md
48-
[team]: https://github.com/rust-embedded/wg#the-hal-team
49-
[`embedded-hal`]: https://crates.io/crates/embedded-hal
50-
[design goals]: https://docs.rs/embedded-hal/latest/embedded_hal/#design-goals

embedded-hal-async/README.md

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
An asynchronous Hardware Abstraction Layer (HAL) for embedded systems.
1111

12-
This crate contains asynchronous versions of the [`embedded-hal`] traits and shares its scope and [design goals].
13-
The purpose of this crate is to iterate over these trait versions before integrating them into [`embedded-hal`].
12+
This crate contains asynchronous versions of the [`embedded-hal`](https://crates.io/crates/embedded-hal) traits and shares its scope and [design goals].
13+
The purpose of this crate is to iterate over these trait versions before integrating them into [`embedded-hal`](https://crates.io/crates/embedded-hal).
1414

1515
**NOTE** These traits are still experimental. At least one breaking change to this crate is expected in the future (changing from GATs to `async fn`), but there might be more.
1616

17-
This project is developed and maintained by the [HAL team][team].
17+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
1818

1919
## [API reference]
2020

@@ -42,14 +42,3 @@ at your option.
4242
Unless you explicitly state otherwise, any contribution intentionally submitted
4343
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
4444
dual licensed as above, without any additional terms or conditions.
45-
46-
## Code of Conduct
47-
48-
Contribution to this crate is organized under the terms of the [Rust Code of
49-
Conduct][CoC], the maintainer of this crate, the [HAL team][team], promises
50-
to intervene to uphold that code of conduct.
51-
52-
[CoC]: ../CODE_OF_CONDUCT.md
53-
[team]: https://github.com/rust-embedded/wg#the-hal-team
54-
[`embedded-hal`]: https://crates.io/crates/embedded-hal
55-
[design goals]: https://docs.rs/embedded-hal/latest/embedded_hal/#design-goals

embedded-hal-bus/README.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# `embedded-hal-bus`
77

8-
Bus/Device connection mechanisms for [`embedded-hal`], a Hardware Abstraction Layer (HAL) for embedded systems.
8+
Bus/Device connection mechanisms for [`embedded-hal`](https://crates.io/crates/embedded-hal), a Hardware Abstraction Layer (HAL) for embedded systems.
99

1010
It is possible to connect several peripherals to a bus like SPI or I2C.
1111
To support this, `embedded-hal` provides the `SpiBus` and `SpiDevice` traits in the case of SPI, for example.
@@ -18,7 +18,7 @@ This crate provides mechanisms to connect a `...Bus` and a `...Device`.
1818

1919
For further details on these traits, please consult the [`embedded-hal` documentation](https://docs.rs/embedded-hal).
2020

21-
This project is developed and maintained by the [HAL team][team].
21+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
2222

2323
## [API reference]
2424

@@ -48,13 +48,3 @@ at your option.
4848
Unless you explicitly state otherwise, any contribution intentionally submitted
4949
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
5050
dual licensed as above, without any additional terms or conditions.
51-
52-
## Code of Conduct
53-
54-
Contribution to this crate is organized under the terms of the [Rust Code of
55-
Conduct][CoC], the maintainer of this crate, the [HAL team][team], promises
56-
to intervene to uphold that code of conduct.
57-
58-
[CoC]: ../CODE_OF_CONDUCT.md
59-
[team]: https://github.com/rust-embedded/wg#the-hal-team
60-
[`embedded-hal`]: https://crates.io/crates/embedded-hal

embedded-hal-nb/README.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
A non-blocking Hardware Abstraction Layer (HAL) for embedded systems, using the `nb` crate.
99

10-
This crate contains versions of some [`embedded-hal`] traits using `nb`, and shares its scope and [design goals].
10+
This crate contains versions of some [`embedded-hal`](https://crates.io/crates/embedded-hal) traits using `nb`, and shares its scope and [design goals].
1111

12-
This project is developed and maintained by the [HAL team][team].
12+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
1313

1414
## [API reference]
1515

@@ -37,14 +37,3 @@ at your option.
3737
Unless you explicitly state otherwise, any contribution intentionally submitted
3838
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
3939
dual licensed as above, without any additional terms or conditions.
40-
41-
## Code of Conduct
42-
43-
Contribution to this crate is organized under the terms of the [Rust Code of
44-
Conduct][CoC], the maintainer of this crate, the [HAL team][team], promises
45-
to intervene to uphold that code of conduct.
46-
47-
[CoC]: ../CODE_OF_CONDUCT.md
48-
[team]: https://github.com/rust-embedded/wg#the-hal-team
49-
[`embedded-hal`]: https://crates.io/crates/embedded-hal
50-
[design goals]: https://docs.rs/embedded-hal/latest/embedded_hal/#design-goals

embedded-hal/README.md

Lines changed: 1 addition & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -7,68 +7,12 @@
77

88
> A Hardware Abstraction Layer (HAL) for embedded systems
99
10-
This project is developed and maintained by the [HAL team][team].
10+
This project is developed and maintained by the [HAL team][https://github.com/rust-embedded/wg#the-hal-team].
1111

1212
## [API reference]
1313

1414
[API reference]: https://docs.rs/embedded-hal
1515

16-
## Scope
17-
18-
`embedded-hal` serves as a foundation for building an ecosystem of platform agnostic drivers.
19-
(driver meaning library crates that let a target platform interface an external device like a digital
20-
sensor or a wireless transceiver).
21-
22-
The advantage of this system is that by writing the driver as a generic library on top
23-
of `embedded-hal` driver authors can support any number of target
24-
platforms (e.g. Cortex-M microcontrollers, AVR microcontrollers, embedded Linux, etc.).
25-
26-
The advantage for application developers is that by adopting `embedded-hal` they can unlock all
27-
these drivers for their platform.
28-
29-
`embedded-hal` is not tied to a specific execution model like blocking or non-blocking.
30-
31-
For functionality that goes beyond what is provided by `embedded-hal`, users are encouraged
32-
to use the target platform directly. Abstractions of common functionality can be proposed to be
33-
included into `embedded-hal` as described [in this guide](docs/how-to-add-a-new-trait.md), though.
34-
35-
See more about the design goals in [this documentation section](https://docs.rs/embedded-hal/latest/embedded_hal/#design-goals).
36-
37-
## Releases
38-
39-
At the moment we are working towards a `1.0.0` release (see [#177]). During this process we will
40-
release alpha versions like `1.0.0-alpha.1` and `1.0.0-alpha.2`.
41-
Alpha releases are **not guaranteed** to be compatible with each other.
42-
They are provided as early previews for community testing and preparation for the final release.
43-
If you use an alpha release, we recommend you choose an exact version specification in your
44-
`Cargo.toml` like: `embedded-hal = "=1.0.0-alpha.8"`
45-
46-
See [this guide](docs/version-policy.md) for a way to implement both an `embedded-hal` `0.2.x`
47-
version and an `-alpha` version side by side in a HAL.
48-
49-
[#177]: https://github.com/rust-embedded/embedded-hal/issues/177
50-
51-
## Documents
52-
53-
- [How-to: add a new trait](docs/how-to-add-a-new-trait.md)
54-
- [Version policy](docs/version-policy.md)
55-
- [MSRV](docs/msrv.md)
56-
57-
## Implementations and drivers
58-
59-
For a non-exhaustive list of `embedded-hal` implementations and driver crates check the
60-
[awesome-embedded-rust] list.
61-
62-
You may be able to find even more HAL implementation crates and driver crates by searching for the
63-
[`embedded-hal-impl`], [`embedded-hal-driver`] and [`embedded-hal`][embedded-hal-kw] keywords
64-
on crates.io.
65-
66-
[`embedded-hal-impl`]: https://crates.io/keywords/embedded-hal-impl
67-
[`embedded-hal-driver`]: https://crates.io/keywords/embedded-hal-driver
68-
[embedded-hal-kw]: https://crates.io/keywords/embedded-hal
69-
70-
[awesome-embedded-rust]: https://github.com/rust-embedded/awesome-embedded-rust#driver-crates
71-
7216
## Minimum Supported Rust Version (MSRV)
7317

7418
This crate is guaranteed to compile on stable Rust 1.54 and up. It *might*
@@ -91,12 +35,3 @@ at your option.
9135
Unless you explicitly state otherwise, any contribution intentionally submitted
9236
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
9337
dual licensed as above, without any additional terms or conditions.
94-
95-
## Code of Conduct
96-
97-
Contribution to this crate is organized under the terms of the [Rust Code of
98-
Conduct][CoC], the maintainer of this crate, the [HAL team][team], promises
99-
to intervene to uphold that code of conduct.
100-
101-
[CoC]: CODE_OF_CONDUCT.md
102-
[team]: https://github.com/rust-embedded/wg#the-hal-team

0 commit comments

Comments
 (0)