Skip to content

Commit da5744e

Browse files
committed
[RFC] Embedded Rust Showcase
1 parent 26e04fe commit da5744e

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

rfcs/0000-embedded-rust-showcase.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Summary
2+
[summary]: #summary
3+
4+
This RFC proposes establishing a new repository for a web page advertising
5+
noteworthy embedded Rust projects. This new resource would go beyond the
6+
existing [awesome-embedded-rust] list by allowing long form
7+
descriptions, photographs, and videos to best demonstrate the projects.
8+
9+
[awesome-embedded-rust]: https://github.com/rust-embedded/awesome-embedded-rust
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
We would like a well-presented list of interesting embedded projects using Rust
15+
to advertise Rust's abilities in this domain. Existing lists are mainly
16+
targeted at embedded Rust developers looking for libraries; this list would
17+
instead be advertising the final projects people have accomplished with Rust,
18+
and so should appeal to potential users who are not already embedded Rust
19+
developers.
20+
21+
The main embedded Rust website will contain a shortlist of especially notable
22+
projects, but is aimed at presenting a very high-level overview to all users
23+
including non-technical users. This proposed list would be able to present more
24+
projects in more detail, and will require that their source code is publically
25+
available so embedded developers interested in Rust can inspect it.
26+
27+
# Detailed design
28+
[design]: #detailed-design
29+
30+
## New Repository
31+
32+
We create a new repository, `embedded-rust-showcase` (TBC), in the
33+
rust-embedded organisation and under the existing Resources team. It will use
34+
the same underlying technology as the upcoming embedded Rust website to render
35+
Markdown to a web page.
36+
37+
## New Web Page
38+
39+
The new web page would live at https://showcase.embedded-rust.org (TBC).
40+
41+
Each project is listed with a photograph/GIF/video, description, and other
42+
details (see Submission section).
43+
44+
Additionally, each project has a badge indicating whether it builds on stable
45+
Rust or requires a nightly compiler.
46+
47+
## Project Requirements
48+
49+
To be considered for inclusion, projects must:
50+
51+
* Involve embedded Rust, in other words, use Rust and run on embedded hardware
52+
53+
* Have publically available source code
54+
55+
The objective of this list is to showcase Rust code in action; we can't do this
56+
if people can't read the code! There might be space on the main Embedded Rust
57+
website to showcase projects known to use Rust but without public code. We
58+
don't require that the source code is under an open source license; just that
59+
it's available for interested users to read.
60+
61+
* Have working CI builds
62+
63+
Since we want people to be able to learn from the code, we require it at least
64+
builds successfully. Working CI also shows what versions of Rust it builds on,
65+
which is useful to establish if a project works on stable Rust.
66+
67+
* Have at least one photograph/video/GIF of the project in action
68+
69+
## Project Submission
70+
71+
Projects are submitted by their authors via pull requests. Submissions must
72+
contain the following information:
73+
74+
* Project name
75+
* Author name
76+
* Project website/repository
77+
* Project description
78+
* Images, GIFs, or video of the project
79+
* Whether or not the project builds on stable Rust
80+
81+
After a project is submitted, the resources team will review the PR and
82+
vote on inclusion. They may consult other relevant teams in the process,
83+
but final approval of submissions is at the discretion of the resources team.
84+
85+
# Alternatives
86+
87+
* Instead of badges for builds-on-stable projects, the nightly-only projects
88+
could be binned together at the bottom of the page.
89+
* The web page could instead be maintained as part of the main embedded-rust
90+
website, existing as a page in that website.
91+
* We could extend awesome-embedded-rust to permit longer descriptions of
92+
projects.
93+
* We could integrate this concept into the existing awesome-embedded-rust
94+
repository, but still render the projects to a web page.
95+
96+
# Unresolved Questions
97+
[unresolved]: #unresolved
98+
99+
* Final name for repository/web page
100+
* The specific technical solution for rendering the repository contents to a
101+
web page

0 commit comments

Comments
 (0)