118 releases

0.14.11 Sep 18, 2023
0.14.10 Jul 10, 2022
0.14.9 Apr 1, 2022
0.14.8 Feb 3, 2022
0.0.3 Dec 28, 2016

#44 in Hardware support

Download history 8034/week @ 2023-08-12 8246/week @ 2023-08-19 7608/week @ 2023-08-26 7707/week @ 2023-09-02 7900/week @ 2023-09-09 7953/week @ 2023-09-16 4917/week @ 2023-09-23 5827/week @ 2023-09-30 7090/week @ 2023-10-07 7057/week @ 2023-10-14 9105/week @ 2023-10-21 8402/week @ 2023-10-28 7566/week @ 2023-11-04 8379/week @ 2023-11-11 7985/week @ 2023-11-18 7332/week @ 2023-11-25

32,704 downloads per month
Used in 62 crates (42 directly)

MIT/Apache

360KB
6.5K SLoC

x86_64 library

Crates.io Build Status docs.rs

Support for x86_64 specific instructions (e.g. TLB flush), registers (e.g. control registers), and structures (e.g. page tables).

Crate Feature Flags

  • nightly: Enables features only available on nightly Rust; enabled by default.
  • instructions: Enabled by default, turns on x86_64 specific instructions, and dependent features. Only available for x86_64 targets.

Minimum Supported Rust Version (MSRV)

If no features are enabled (--no-default-features), Rust 1.57.0 is required.

If only the instructions feature is enabled (--no-default-features --features instructions), Rust 1.59.0 is required.

If the nightly feature or any of its sub-features is enabled, a recent nightly is required.

Other OS development crates

This crate does not attempt to handle every facet of OS development. Other useful crates in this space include:

  • raw-cpuid: safe wrappers around the cpuid instruction
    • Provides parsed versions of the CPUID data, rather than just raw binary values.
    • Support for AMD and Intel specific values.
    • Works on x86 and x86_64 systems, in both user and kernel mode.
  • uefi: abstractions for UEFI (the successor to BIOS)
    • Provides UEFI tables, functions, and types.
    • Useful for writing UEFI applications, or calling UEFI functions from your OS.
    • Works on a variety of modern platforms, not just x86_64.
  • volatile: interface to read_volatile and write_volatile
    • Makes it easier to program MMIO interfaces and devices.
    • Works on any Rust target.

Dependencies

~170KB