# `lilos`

This is a wee operating system written to support the `async` style of
programming in Rust on microcontrollers. It fits in about 2 kiB of Flash and
uses about 20 bytes of RAM (before your tasks are added). In that space, you get
a full `async` runtime with multiple tasks, support for complex concurrency via
`join` and `select`, and a lot of convenient but simple APIs. (If you want to
see what a `lilos` program looks like, look in the `examples` directory, or read
the intro guide.)

`lilos` has been deployed in real embedded systems since 2019, running
continuously. I've built about a dozen systems around it of varying complexity,
on half a dozen varieties of microcontroller. It works pretty okay! Perhaps you
will find it useful too.

See the repository for example code and getting started instructions, or the
Rustdoc on the top level `lilos` module for API details and descriptions of
modules.
