Skip to content

cosi-project/engine

Repository files navigation

engine

=======

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.

Roadmap

  • 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 unwraps.
  • Resources:
    • Schema.
    • Serialization/deserialization.
      • Note: This is implemented with the caveat that the spec is expressed as bytes instead of google.protobuf.Any. The prost library does not currently support serialization/deserialization of google.protobuf.Any. This is something we should revisit later.
  • Generators:
    • ACPI.
    • Block device.
  • Plugins:
    • Registration:
      • Validation.
      • Uniqueness.
    • Lifecycle management.
    • Health.
  • CLI:
    • Subcommands:
      • get
      • apply
  • 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, and KernelParameter resource from the client.