kos 0.7.10

The K-Scale Operating System
Documentation
# K-Scale OS

Welcome to the K-Scale Operating System!

## Building

### Prerequisites

- `cross` toolchain

You can install `cross` by running:

```bash
cargo install cross
```

### Native build

Native build:

```bash
cargo build
```

You can run the `kos-stub` endpoint for testing purposes using the command:

```bash
cargo run --bin kos-stub
```

After doing this, you can test the endpoint using the `pykos` client:

```python
import pykos

client = pykos.KOS("127.0.0.1")
```

### Cross build

Cross build for `kbot`:

```bash
cross build --release --target aarch64-unknown-linux-gnu
```

## Running

```bash
RUST_LOG=debug cargo run
```

You can specify logging levels for individual modules by adding `module_name=log_level` to the `RUST_LOG` environment variable. For example:

```bash
RUST_LOG=debug,krec=warn cargo run
```

### List of features (--features / -F flag)

Features are how you specify the specific platform to run K-OS on (e.g. -F kos-kbot when running on K-Bot)

- kos-kbot
- zeroth-01 (not finished)
- sim (not finished)

## Adding a new embodiment

Reference the existing platforms / features in [platforms](platforms).

You essentially create another package (Cargo.toml, lib.rs, etc) with the necessary actuator and imu implementations according to the specifications in [kos-core](kos-core/src/services)

To save trace logs to a file, pass the `--log` flag:

```bash
cargo run -- --log
```

## Contributing

- Use `cargo fmt --all` to format the code.
- Use `cargo clippy` to check for lint errors.
- Use `cargo test` to run the tests.
- Use `tracing` for logging.
- Use `eyre` to handle errors.
- No `unwrap()` or `expect()`.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.