=======
This project is an implementation of the COSI specification written in Rust.
This engine is effectively a systemd
(pid 1) alternative with a COSI compliant API.
- Signal handling.
- ACPI event handling.
- Zombie reaping.
- Process restart exponential backoff.
- Configuration bootstrapping from a metadata endpoint.
- Feature gate mechanism.
- Official toolchain.
- Build with
musl
. - Compile kernel headers.
- Run modes:
- Metal.
- Cloud.
- Container.
- Error handling
- Custom errors.
- Zero
unwrap
s.
- Resources:
- Schema.
- Serialization/deserialization.
- Note: This is implemented with the caveat that the
spec
is expressed asbytes
instead ofgoogle.protobuf.Any
. Theprost
library does not currently support serialization/deserialization ofgoogle.protobuf.Any
. This is something we should revisit later.
- Note: This is implemented with the caveat that the
- Generators:
- ACPI.
- Block device.
- Plugins:
- Registration:
- Validation.
- Uniqueness.
- Lifecycle management.
- Health.
- Registration:
- CLI:
- Subcommands:
-
get
-
apply
-
- Subcommands:
- Tests:
- Integration.
- Plugins:
- Successful registration.
- Duplicate registration.
- Restart.
- Documentation:
- Code comments.
- Architecture.
- Protobuf comments.
- Flow charts.
- Demo:
- Get a list of all available resources (client).
- Apply a
Resolver
,Mount
, andKernelParameter
resource from the client.