Giter VIP home page Giter VIP logo

Comments (4)

posborne avatar posborne commented on July 30, 2024 2

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.

japaric avatar japaric commented on July 30, 2024

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.

japaric avatar japaric commented on July 30, 2024

@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,

  1. 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,

  1. 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,

  1. Should we include links to the page of the project?

Finally,

  1. 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?)

  2. 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.

  1. 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.

japaric avatar japaric commented on July 30, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.