Skip to content

Form a libs team? #266

Closed
Closed
@japaric

Description

@japaric

We've received quite a few crate requests in the 2019 wishlist survey. Those requests are listed below from most voted to least voted:

The first two requests might fit within the scope of the HAL team but the rest don't fit within the scope of any of the other teams we currently have.

The question is: should we create a new libs team dedicated to cater to these requests?

My opinion is that we should create a libs team but should not add non-architecture specific (i.e. general purpose) crates to the org. Instead the libs team should follow the lib blitz model to help grow crates developed by the community.

The reasons why I think we should, in general (*), not maintain or develop general purpose no-std crates in the org are:

  • Increased maintenance load (the WG currently owns 38 repos)

  • Some crates require specialized knowledge (e.g. USB), which means we'll have to further increase the WG membership (the WG currently has 26 members)

  • Trade-offs in library design often lead to competing implementations (e.g. RTOS-es), which is a good thing because people have different needs (e.g. some may prefer ease of use over flexibility) -- more options means they can pick what suits them best. Taking a crate into the org effectively blesses it (i.e. it puts a "WG approved" stamp on it). This, I think, would be rather harmful in the early stages of the embedded ecosystem as it would prevent other implementations from competing on equal footing.

(*) of course, every rule has it exception. I think for example that, once mature, a core usb crate along the lines of the http crate would be reasonable to have under the org and the maintenance of the HAL team.

Apart from preventing the above issues, following the lib blitz model means that we'll get to observe API design patterns emerge in the development of several libraries, which we can then add to our docs for the benefit of the whole embedded community.

Thoughts on the general direction? (There are plenty of details to hash out; the lib blitz model aims to take crates to 1.0 status whereas we would likely have to work with crates in their early development stages)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions