| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.13.0 source code.tar.gz | 2026-02-25 | 321.5 kB | |
| 0.13.0 source code.zip | 2026-02-25 | 424.4 kB | |
| README.md | 2026-02-25 | 11.7 kB | |
| Totals: 3 Items | 757.6 kB | 0 | |
🚀 Features
- Support regularly printing allocation stats
- Always log targets
- Add warn-prebuilt feature
- (Cargo.toml) Don't build staticlib by default
- (Cargo.toml) Harmonize virtio feature names
- Support virtio-fs-mmio
- Print target architecture on boot
- (xtask) Replace
--instrument-mcountwith feature - (Cargo.toml) Deprecate
fsfeature - Don't reexport create_file at the crate root
- Rename
tracefeature tonet-trace - (Cargo.toml) Deprecate
nostdfeature - (syscalls) Make mman public
🐛 Bug Fixes
- (virtio) Remove unused
BufferError - (xtask) Retry Firecracker on failure
- (x86_64) Remove unused remains of recursive page tables
- (pci) Handle error values for IRQ number
- (virtio) Remove unused rank field
- (virtio) Don't print capability ID when irrelevant
- (virtq/split) Don't box
TransferTokens - Function_casts_as_integer
- (pcie) Include the end bus number in scan and mapping
- (syscall/socket) Follow POSIX and Linux for errno
- (syscall/socket) Check for socket flags validity
- (fs/mem) Don't implement min manually
- Avoid casting functions to usize if possible
- (arch/scheduler) Don't cast task_start to pointer
- (mem/fs) Return
EOVERFLOWfrom lseek on overflow - (mem/fs) Return
EINVALfrom ROM lseek for too large offsets - (mem/fs) Fix(mem/fs): test all lseek cases for negative file offsets
- (fuse) Don't import alloc via crate
- (fs) Don't make inner handles public
- (aarch64) Align task_start signatures
- (arch/scheduler) Remove panicking task_start
- (virtio) Align device not supported logs
- (virtio) Enhance error message when feature is not activated
- (fs/mem) Remove unused methods
- (fs/mem) Don't allow dead_code
- (virtq) Make IndexAlloc start at low indixes
- (arch) Remove unused memory_barrier function
- (x86_64) Correctly report CPUID source for CPU frequency
- (Cargo.toml) Don't enable deprecated crate features
- (builtins) Allow building with --all-targets
- (syscalls/socket) Clippy::needless_late_init
- (virtio) Clippy::large_enum_variant
- (aarch64/mmio) Clippy::collapsible_if
- (x86_64/mmio) Use io::Result
- (x86_64) Support virtio-console-mmio
- (virtio-pci) Remove shared memory structures
- (virtio/transport) Remove unused ComCfg::dev_status
- (virtio-mmio) Remove unused ComCfg::get_queue_ready
- (virtio-pci) Gate NotifCfg::length
- (mmio) Print virtio-console info
- (riscv64/mmio) Dead_code
- (x86_64/mmio) Dead_code
- (virtio) Dead_code on VirtioError
- (virtio-fs-mmio) Print information
- Enable ACPI for SMP on x86_64
- Fuzzy_provenance_casts
- Lossy_provenance_casts
- Enable strict provenance lints
- (x86_64/apic) Corrected IOAPIC default address
clippy::uninlined_format_args- (macros) Use unambiguous
format_args!path - Tag all format-like macros with
#[clippy::format_args] - (macros) Use
$crateinhermit_var! - (macros) Use global paths
- (macros) Macro_expanded_macro_exports_accessed_by_absolute_paths
- (pci) Log errors in
init - (virtio) Log error when device does not accept features
- (arch/serial) Only be read_ready when data is available
- (virtio-fs) De-assert interrupts
- (tls) Create TLS for idle task when instrumenting the kernel
- (xtask) Demangle symbols when testing rftrace
- (virtio-fs) Register IRQ name
- (riscv64/scheduler) Align
task_entrywith AArch64 - (riscv64/scheduler) Clarify register functions
- (virtio-console) Align handle_interrupt to other impls
- (virtio/transport) Don't allow
IsrStatusmethods to be unused - (virtio/transport) Merge
IsrStatus::is_queue_interruptintoacknowledge - Capitalize UEFI path
- (socket/tcp) When polling listening, poll all sockets
- (pci) Warn when virtio is disabled
- Unify Hermit name
- Remove manual feature logs
💼 Other
- (deps) Upgrade rust-toolchain to nightly-2025-12-01
- (deps) Don't use git source for x86_64 crate
- (xtask/deps) Don't depend on ureq/gzip
- (xtask) Feature-gate 'ci' subcommand
- (xtask/arch) Don't use anyhow
- (builtins) Fix
Cargo.lock - (deps) Upgrade rust-toolchain to nightly-2026-01-01
- (xtask) Run Clippy for virtio-mmio
- (xtask) Allow multiple occurrences of flags
- (deps) Update to trapframe 0.10.1
- (deps) Upgrade align-address to 0.4
- (deps) Upgrade rust-toolchain to nightly-2026-02-01
- (deps) Upgrade rand_chacha to 0.10
- (deps) Update
Cargo.lock
🚜 Refactor
- Replace aarch64 crate with aarch64-cpu
- (aarch64) Replace dmb assembly with aarch64-cpu crate
- (aarch64) Replace isb assembly with aarch64-cpu crate
- (aarch64) Replace dsb assembly with aarch64-cpu crate
- (aarch64) Replace TPIDR_EL1 assembly with aarch64-cpu crate
- (aarch64) Replace ttbr0_el1 assembly with aarch64-cpu crate
- (aarch64) Replace wfe, wfi assembly with aarch64-cpu crate
- (aarch64) Replace id_aa64mmfr0_el1 assembly with aarch64-cpu crate
- (virtio) Migrate
VirtqErrortothiserror - (pci) Migrate
PciErrortothiserror - (virtio-net) Migrate
VirtioNetErrortothiserror - (virtio-fs) Migrate
VirtioFsErrortothiserror - (virtio-console) Migrate
VirtioConsoleErrortothiserror - (virtio-vsock) Migrate
VirtioVsockErrortothiserror - (virtio) Migrate
VirtioErrortothiserror - (rtl8139) Migrate
RTL8139Errortothiserror - (gem) Migrate
GEMErrortothiserror - (drivers) Migrate
DriverErrortothiserror - (virtqueue) Remove
VqSizenewtype - (virtqueue) Remove
VqIndexnewtype - (pvirtq) Remove unused
WrapCount::flag_mask - (pvirtq) Remove
WrapCountnewtype - (virtqueue) Remove
MemDescrIdnewtype - Use uhyve version define macro from hermit_entry
- (common-os) Use
slice::from_raw_parts_mutinstead - (aarch64/serial) Safely maintain non-zero invariant
- (riscv64) Use
env::fdt - (riscv64/devicetree) Reduce unsafe scope
- (pvirtq) Use bitfields for
RingIdx - (pvirtq) Use bitfields for
DescriptorRing::write_indexanddrv_wc - (pvirtq) Use bitfields for
DescriptorRing::poll_indexanddev_wc - (fs/mem) Use imported locks
- (fd) Remove
Debugbound fromObjectInterface - (mem/fs) Use match instead of if/else
- (mem/fs) Extract data_len in lseek
- Consistently use
to_ownedoverto_stringforstr - (riscv64) Make task_start a naked function
- (fs/mem) Get rid of another unnecessary allocation
- (xtask) Use cargo-rustc instead of cargo-build
- (xtask) Only build staticlib
- (fs/mem) Move
RomFileInner'sRwLockinto it - (virtq) Rename size to max_size
- (virtqueue) Use early continue in IndexAlloc::allocate
- Simplify virtio cfgs
- Rename console feature to virtio-console
- Rename fuse feature to virtio-fs
- Rename vsock feature to virtio-vsock
- (virtio-fs) Move fs/virtio_fs.rs to fs/mod.rs
- (virtio-fs) Rename virtio_pci.rs to pci.rs
- (virtio-fs) Make pci module private
- Rename
VirtioDriver::NetworktoNet - Rename
VirtioDriver::FileSystemtoFs - (virtio) Sort VirtioDriver variants
- (virtio) Sort virtio::Id variants
- (riscv64/devicetree) Simplify virtio init code
- (aarch64) Enable mmio module on virtio feature
- (aarch64/mmio) Use import
- (riscv64) Enable mmio module on virtio feature
- (virtio-net-mmio) Simplify VirtioNetDriver::init
- (virtio) Make allows more fine-grained
- (virtio) Unify feature negotiation
- (fd) Rename
FileDescriptortoRawFd - (mm) Extract common divisor
- Don't import
is_uhyve_with_pci - (logging) Always use format args for infoentry
- (kernel/core_local) Swap out StaticExecutor with StaticLocalExecutor
- (aarch64/start) Inline endianness instructions
- (aarch64/start) Move SCTLR_EL1 into function
- (fs) Don't fully qualify
SendandSync - (fs) Make
Send,Syncsupertraits ofVfsNode - Consistently import
core::ptr - Consistently import
core::slice - Consistently import
core::mem - Consistently import
core::pin::pin - Use pointer methods instead of functions
- (drivers) Align interrupt map insertion
- (arch) Do more early returns
- (drivers) Do more early returns
- (fs) Do more early returns
- (fd) Do more early returns
- (executor) Do more early returns
- (syscalls) Do more early returns
- Do more early returns
- (mmio) Rename
VirtioDriver::FileSystemtoFs - (fs) Rename
fuse.rstovirtio_fs.rs - (virtio-fs) Change FUSE to virtio-fs in logs
- (virtio-fs) Rename
VirtioFsErrortoVirtioFsInitError - (virtio-fs) Rename
Fuse*types toVirtioFs* - (virtio-fs) Capitalize FUSE in comments
- (drivers) Rename
fuse_handlertovirtio_fs_handler - Don't use
iwhen not iterating over integers - (executor/device) Deduplicate network initialization
📚 Documentation
- (pvirtq) Don't call notification structs newtypes
- (virtio) Clean up module docs
- Capitalize the first word
- Don't mention helper items
- (fs) Use active instead of imperative language
- Enable
doc_cfgfor docs.rs - (README.md) More visibly link to the crate docs
- (mman) Add documentation
- Build docs for docs.rs with all features
- Rework crate documentation
- Allow documenting features
- Prepare documenting features by reordering them
- Document features
⚡ Performance
- (virtqueue) Remove unused
MemPool::limitfield - (virtqueue) Replace vec-based
MemPoolswith bitmap-basedIndexAlloc - (fs/mem) Remove
Arcaround file positions - (fs/mem) Get rid of unnecessary
Stringallocations - (fuse) Make use of
CString::newspecialization - (virtio-pci) Don't read queue size twice
- (virtio-pci) Use weaker memory barriers
- (virtq) Use weaker memory barriers
- (virtio-pci) Remove all memory barriers
- (aarch64/start) Make SCTLR_EL1 value a constant
🎨 Styling
- Use raw borrows instead of
addr_of! - (ci) Remove trailing space
- (pci) Remove non-trailing comma in
cfgattributes - (Cargo.toml) Sort dependency properties
- Consistently import
core::fmt - (syscalls) Add newline
- Remove mixed whitespaces
- (Cargo.toml) Sort default features
- (Cargo.toml) Move
mmapfeature to deprecated features
🧪 Testing
- (virtq) Test IndexAlloc
⚙️ Miscellaneous Tasks
- Run Firecracker before Uhyve
- Run cargo-deny
- (Cargo.toml) Replace list of authors
- Upgrade Uhyve to 0.6
- (bench) Increase alloc bench memory
- (bench) Enable QEMU's isa-debug-exit device
- (fs/mem) Remove copyright header
- Use GitHub CLI to download Firecracker
- Use virtio-console feature
- (builtins) Don't accidentally publish
- Validate lock file
- Run Clippy exhaustively
- Add matrix.flags to every qemu invocation
- Rename matrix.flags to qemu_flags
- (xtask) Increase RISC-V memory
- (xtask) Enable semihosting for RISC-V
- Enable semihosting on ARM and RISC-V
- (xtask) Add support for virtio-fs-mmio
- (bench) Increase alloc bench memory again
- Set Firecracker and Uhyve paths during installation
- Install qemu-system-arm instead of alias
- Add "consts" to typos.toml
- Download cargo-careful instead of building it
- Test Uhyve filesystem
- Don't run clippy on aarch64_be
- Simplify publish docs
- Rename publish docs workflow to deploy docs
- Deploy docs from GitHub Actions instead of from a branch
- Build docs like docs.rs would
- Improve HTML redirect
- Release Hermit 0.13.0