lambda-fairy/rust-errno

:boom: Cross-platform interface to the `errno` variable

80

stars

181

commits

Rust

primary language

Aug 6, 2026

updated

docs.rs/errno

README

errno CI Cargo

Cross-platform interface to the errno variable. Works on Rust 1.56 or newer.

Documentation is available at https://docs.rs/errno.

Dependency

Add to your Cargo.toml:

[dependencies]
errno = "0.3"

Comparison with std::io::Error

The standard library provides Error::last_os_error which fetches errno in the same way.

This crate provides these extra features:

  • No heap allocations
  • Optional #![no_std] support
  • A set_errno function

Examples

extern crate errno;
use errno::{Errno, errno, set_errno};

// Get the current value of errno
let e = errno();

// Set the current value of errno
set_errno(e);

// Extract the error code as an i32
let code = e.0;

// Display a human-friendly error message
println!("Error {}: {}", code, e);

#![no_std]

Enable #![no_std] support by disabling the default std feature:

[dependencies]
errno = { version = "0.3", default-features = false }

The Error impl will be unavailable.

Contributors

(top 30 of 38)

lambda-fairy

92 commits

sunfishcode

25 commits

LingMan

14 commits

lambda-fairy/rust-errno

:boom: Cross-platform interface to the `errno` variable

80

stars

181

commits

Rust

primary language

Aug 6, 2026

updated

docs.rs/errno

README

errno CI Cargo

Cross-platform interface to the errno variable. Works on Rust 1.56 or newer.

Documentation is available at https://docs.rs/errno.

Dependency

Add to your Cargo.toml:

[dependencies]
errno = "0.3"

Comparison with std::io::Error

The standard library provides Error::last_os_error which fetches errno in the same way.

This crate provides these extra features:

  • No heap allocations
  • Optional #![no_std] support
  • A set_errno function

Examples

extern crate errno;
use errno::{Errno, errno, set_errno};

// Get the current value of errno
let e = errno();

// Set the current value of errno
set_errno(e);

// Extract the error code as an i32
let code = e.0;

// Display a human-friendly error message
println!("Error {}: {}", code, e);

#![no_std]

Enable #![no_std] support by disabling the default std feature:

[dependencies]
errno = { version = "0.3", default-features = false }

The Error impl will be unavailable.

Contributors

(top 30 of 38)

lambda-fairy

92 commits

sunfishcode

25 commits

LingMan

14 commits

Languages

Rust

100.0%