hermit-kernel 0.10.0

A Rust-based library operating system
Documentation
[build-dependencies.anyhow]
version = "1"

[build-dependencies.llvm-tools]
version = "0.1"

[dependencies.ahash]
default-features = false
version = "0.8"

[dependencies.align-address]
version = "0.3"

[dependencies.anstyle]
default-features = false
version = "1"

[dependencies.async-lock]
default-features = false
version = "3.4.0"

[dependencies.async-trait]
version = "0.1.85"

[dependencies.bit_field]
version = "0.10"

[dependencies.bitflags]
version = "2"

[dependencies.build-time]
version = "0.1.3"

[dependencies.cfg-if]
version = "1"

[dependencies.crossbeam-utils]
default-features = false
version = "0.8"

[dependencies.fdt]
features = ["pretty-printing"]
version = "0.1"

[dependencies.free-list]
version = "0.3"

[dependencies.fuse-abi]
features = ["linux", "zerocopy"]
optional = true
version = "0.2"

[dependencies.hashbrown]
default-features = false
version = "0.15"

[dependencies.heapless]
version = "0.8"

[dependencies.hermit-entry]
features = ["kernel"]
version = "0.10"

[dependencies.hermit-macro]
version = "0.1.0"

[dependencies.hermit-sync]
version = "0.1"

[dependencies.lock_api]
version = "0.4"

[dependencies.log]
default-features = false
version = "0.4"

[dependencies.num]
default-features = false
version = "0.4"

[dependencies.num-derive]
version = "0.4"

[dependencies.num-traits]
default-features = false
version = "0.2"

[dependencies.pci-ids]
optional = true
version = "0.2"

[dependencies.pci_types]
version = "0.10"

[dependencies.rand_chacha]
default-features = false
version = "0.3"

[dependencies.shell-words]
default-features = false
version = "1.1"

[dependencies.simple-shell]
optional = true
version = "0.0.1"

[dependencies.smallvec]
features = ["const_new"]
version = "1"

[dependencies.smoltcp]
default-features = false
features = ["alloc", "async", "medium-ethernet", "proto-ipv4", "proto-ipv6", "proto-ipv4-fragmentation", "proto-ipv6-fragmentation"]
optional = true
version = "0.12"

[dependencies.take-static]
version = "0.1"

[dependencies.talc]
version = "4"

[dependencies.time]
default-features = false
version = "0.3"

[dependencies.uhyve-interface]
version = "0.1.2"

[dependencies.virtio]
features = ["alloc", "mmio", "nightly", "zerocopy"]
package = "virtio-spec"
version = "0.2"

[dependencies.volatile]
version = "0.6"

[dependencies.zerocopy]
default-features = false
version = "0.8"

[dev-dependencies.float-cmp]
version = "0.10"

[dev-dependencies.num-traits]
default-features = false
version = "0.2"

[features]
acpi = []
common-os = []
default = ["pci", "pci-ids", "acpi", "fsgsbase", "smp", "tcp", "dhcpv4", "fuse", "vsock"]
dhcpv4 = ["smoltcp", "smoltcp/proto-dhcpv4", "smoltcp/socket-dhcpv4"]
dns = ["smoltcp", "smoltcp/socket-dns"]
fs = ["fuse"]
fsgsbase = []
fuse = ["pci", "dep:fuse-abi", "fuse-abi/num_enum"]
gem-net = ["tcp", "dep:tock-registers"]
idle-poll = []
mmap = []
newlib = []
nostd = []
pci = ["virtio/pci"]
rtl8139 = ["tcp", "pci"]
semihosting = ["dep:semihosting"]
shell = ["simple-shell"]
smp = []
strace = []
tcp = ["smoltcp", "smoltcp/socket-tcp"]
trace = []
udp = ["smoltcp", "smoltcp/socket-udp"]
vga = []
vsock = ["pci"]

[lib]
crate-type = ["staticlib", "lib"]
name = "hermit"
path = "src/lib.rs"

[lints.clippy]
borrow_as_ptr = "warn"
cast_lossless = "warn"
decimal_literal_representation = "warn"
default_trait_access = "warn"
explicit_deref_methods = "warn"
if_not_else = "warn"
ignored_unit_patterns = "warn"
inconsistent_struct_constructor = "warn"
manual_assert = "warn"
manual_let_else = "warn"
match_wildcard_for_single_variants = "warn"
ptr_as_ptr = "warn"
ptr_cast_constness = "warn"
ref_as_ptr = "warn"
ref_option = "warn"
semicolon_if_nothing_returned = "warn"
separated_literal_suffix = "warn"
string_to_string = "warn"
transmute_ptr_to_ptr = "warn"
uninlined_format_args = "warn"
unreadable_literal = "warn"

[lints.rust]
rust_2018_idioms = "warn"
unsafe_op_in_unsafe_fn = "warn"

[package]
authors = ["Stefan Lankes <slankes@eonerc.rwth-aachen.de>", "Colin Finck <colin.finck@rwth-aachen.de>", "Martin Kröning <mkroening@posteo.net>", "Frederik Schulz", "Thomas Lambertz", "Jonathan Klimt <jonathan.klimt@eonerc.rwth-aachen.de>", "Jonathan Schwender", "Daniel Krebs", "Yu Duan"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["os"]
description = "A Rust-based library operating system"
documentation = "https://hermit-os.github.io/kernel/hermit/"
edition = "2024"
exclude = ["/.github/*", "/.vscode/*", "/img/*", ".gitattributes", ".gitignore"]
keywords = ["unikernel", "libos"]
license = "MIT OR Apache-2.0"
name = "hermit-kernel"
readme = "README.md"
repository = "https://github.com/hermit-os/kernel"
version = "0.10.0"

[target.'cfg(target_arch = "aarch64")'.dependencies.aarch64]
default-features = false
version = "0.0.13"

[target.'cfg(target_arch = "aarch64")'.dependencies.arm-gic]
version = "0.1"

[target.'cfg(target_arch = "aarch64")'.dependencies.hermit-dtb]
version = "0.1"

[target.'cfg(target_arch = "aarch64")'.dependencies.memory_addresses]
default-features = false
features = ["aarch64"]
version = "0.2.2"

[target.'cfg(target_arch = "aarch64")'.dependencies.semihosting]
optional = true
version = "0.1"

[target.'cfg(target_arch = "riscv64")'.dependencies.memory_addresses]
default-features = false
features = ["riscv64"]
version = "0.2.2"

[target.'cfg(target_arch = "riscv64")'.dependencies.riscv]
version = "0.12"

[target.'cfg(target_arch = "riscv64")'.dependencies.sbi-rt]
version = "0.0.3"

[target.'cfg(target_arch = "riscv64")'.dependencies.semihosting]
optional = true
version = "0.1"

[target.'cfg(target_arch = "riscv64")'.dependencies.tock-registers]
optional = true
version = "0.9"

[target.'cfg(target_arch = "riscv64")'.dependencies.trapframe]
version = "0.10"

[target.'cfg(target_arch = "x86_64")'.dependencies.free-list]
features = ["x86_64"]
version = "0.3"

[target.'cfg(target_arch = "x86_64")'.dependencies.memory_addresses]
default-features = false
features = ["x86_64", "conv-x86_64"]
version = "0.2.2"

[target.'cfg(target_arch = "x86_64")'.dependencies.multiboot]
version = "0.8"

[target.'cfg(target_arch = "x86_64")'.dependencies.raw-cpuid]
version = "11"

[target.'cfg(target_arch = "x86_64")'.dependencies.uart_16550]
version = "0.3"

[target.'cfg(target_arch = "x86_64")'.dependencies.x86_64]
version = "0.15"

[[test]]
harness = true
name = "basic_math"
path = "tests/basic_math.rs"

[[test]]
name = "basic_mem"
path = "tests/basic_mem.rs"

[[test]]
harness = false
name = "basic_print"
path = "tests/basic_print.rs"

[[test]]
harness = false
name = "measure_startup_time"
path = "tests/measure_startup_time.rs"

[[test]]
name = "thread"
path = "tests/thread.rs"