Comments (4)
Under "what do we want to highlight?" I would definitely add bidirectional C interop. Few places are going to want to go "whole hog" on Rust for an embedded product but might be willing to implement a module in Rust (with C as the "master") or use Rust as the "master" but continue to make use of existing things like drivers they have written in C.
Related discussion in #48
from wg.
Belated update: During the Rust All Hands we talked with the website team and drafted the embedded WG webpage. This is the content that we agreed upon (remember that this single page is basically a marketing sheet that answers the question "why Rust for embedded development?"):
- Videos of embedded Rust projects (carousel)
- "Attributes" that answer the question "why Rust for embedded development?". e.g. Portability,
interop, etc. (grid or three column thing with icons) - Links to documentation: embedded Rust book, embedonomicon, etc.
- Commercial testimonials
Summary of what we briefly discussed in the last meeting:
We have issue #108 for collecting commercial testimonials. Videos will come from commercial users and from popular hobby projects like the monotron. Work on books is tracked elsewhere (#56 and #59).
from wg.
@jamesmunns and @japaric will be working with the website team on the style of the embedded web
page. We need to be clear about the exact style / look we want. There are a few points that need to
be clarified:
Header / carousel
We wrote down: "Videos of embedded Rust projects (carousel)". A carousel makes me think of something
like the header of https://www.segger.com/ . Video in a header makes me think of the header of
https://www.patreon.com/ . But I've never seen the mix of those two: a carousel of videos. Anyone
has an example of that? First question,
- Single video of embedded projects or carousel of images or video carousel?
Also, if I look at the video of an embedded project. I would probably ask myself "What am I looking
at? As in: What's the name of this project? Or what is it about?" So,
- Do we want captions with names / descriptions in the video(s)?
I would also think "That's look cool! I want to know more! I want to look at the code!". So,
- Should we include links to the page of the project?
Finally,
-
How much is too much? How many projects should be featured in the video / carousel? Should we
have a limit on video length? (Maybe tweet size: 140 seconds?) -
Do we have videos at hand right now? That would probably ease the work of the designer.
Why Rust?
We had decided for icon + header + text + link to book per attribute / property. I think
https://www.zephyrproject.org/ can be used as a template. The text should include a Learn
more link at the end. We should decide on the number of attributes, their
titles, icons and links now. The text can be refined later. How about:
Powerful static analysis
Icon: ???
Link: #118
Rust type system lets you enforce pin and peripheral configuration at compile time. Its ownership
system guarantees that resources won't be used by unintended parts of the application.
Flexible memory management
Icon: RAM stick?
Link: #125
Dynamic memory (heap) allocation is optional. Use a global allocator and dynamic data structures
from the Rust standard library. Or leave out heap allocation altogether and statically allocate
everything.
Safe concurrency
Icon: ???
Link: #124
Rust memory safety holds regardless of the concurrency framework. Be it threads with explicit shared
memory or tasks with message passing.
Interoperability
Icon: ???
Link: #48
Integrate Rust into your existing C codebase or leverage an existing SDK to write a Rust application.
Portability
Icon: ???
Link: #119
Write a library / driver once and use it with a variety of systems ranging from very small
microcontrollers to powerful SBCs.
- That'd be 5 attributes. Let's plan for 2 rows of 3 attributes to leave open the possibility of
including an extra attribute (friendliness pointing to IRC with heart icon?)?
Documentation
Next we have links to documentation. We should decide on the style. We could
reuse the style of the attributes and keep it simple and use a book icon for the three links. Or we
could indicate increasing complexity using IC packages as the icons: DIP / SOP, TFQP and then BGA?
We have three books:
Discovery
Icon: SOP-8?
Learn embedded development from scratch using Rust!
The embedded Rust book
Icon: TQFP-32?
Get started with embedded Rust and learn all the tricks.
The embedonomicon
Icon: BGA?
Look under the hood of foundational embedded libraries.
Testimonials
Next section is testimonials. We should decide on the style --
here's one idea. And also on the number of testimonials (3?) and
the length (tweet size?).
Based on what we have collected in #108 we could go for something short like:
"Rust makes our customers happy, as well as our engineers." - Marc
Brinkmann, 49nord
which is fragment of #108 (comment)
Or with something more detailed like:
"We are using Rust for our new Cortex-M3 based product, which is now in the development and
certification stage. Our application is a mix of C/C++ core libraries and domain specific logic in
Rust. So far we have had zero UB and memory corruption issues. We think it's really cool that we
can use a modern nice language in the embedded space where usually there's no alternative to
C/C++" - Aleksei Arbuzov, Terminal Technologies
which is a paraphrase of #108 (comment)
Or a mix of the two.
Production users
Here we list companies / institutions using Rust for embedded development. I think we can use the
style of https://www.rust-lang.org/en-US/friends.html here. Should we set a limit of the number of
"friends" to list here? Or we should grow this indefinitely?
from wg.
Initial layout and content was submitted. The page has been integrated into the new website and styling was applied by the website team. The revamped website is not public yet so I can't share a picture with you at this time but it already looks nice, IMO.
This issue is done! Next stage is to iterate on the submitted content. #131 will track that work.
from wg.
Related Issues (20)
- Agenda for 2020-08-03 meeting
- Agenda for 2020-08-11 meeting
- Bring embedded-nal under the umbrella HOT 10
- Agenda for 2020-08-18 meeting
- Implementer Wanted for Instruction Set RFC HOT 2
- Agenda for 2020-08-25 meeting
- Agenda for 2020-09-08 Meeting
- Agenda for 2020-09-15
- Propose to transfer RustSBI project to rust-embedded community HOT 1
- AVR flashing tool. Help needed HOT 2
- Mailing list? HOT 6
- Making `panic-never` a requirement or convention for `rust-embedded` libraries where feasible HOT 19
- Calliope Mini HOT 2
- Track upstream double-panic issue
- Support `riscv32imf-unknown-none-elf (Baremetal)` in rust as a cross compile target? HOT 1
- Tracking Issue: Rust Embedded on Mastodon HOT 9
- Display showcase on rust-embedded.org landing page HOT 1
- Benchmarking embedded rust code HOT 3
- How can I contribute to the embedded wg? HOT 1
- bors-ng is being retired HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wg.