rawsys-linux 1.0.0

Direct Linux kernel syscalls in Rust — no libc required, per-ISA and multi-version aware.
Documentation
[package]
name = "rawsys-linux"
version = "1.0.0"
authors = ["Jaehyuk Son <github@reception.sonjaehyuk.me>"]
edition = "2024"
license = "BSD-2-Clause"
description = """
Direct Linux kernel syscalls in Rust — no libc required, per-ISA and multi-version aware.
"""
keywords = ["syscall", "linux", "inline-assembly", "kernel", "no-libc"]
categories = ["os::linux-apis", "no-std"]
readme = "README.md"
repository = "https://github.com/sonjaehyuk/rawsys-linux"
homepage = "https://github.com/sonjaehyuk/rawsys-linux"
documentation = "https://docs.rs/rawsys-linux"

[features]
default = ["std", "serde"]

# Enables all extra features.
full = ["std", "serde", "all"]

# Enables usage of libstd.
std = []

# Includes the syscall tables for all architectures.
all = [
    "aarch64", "arm", "loongarch64", "mips", "mips64", "powerpc", "powerpc64",
    "riscv32", "riscv64", "s390x", "sparc", "sparc64", "x86", "x86_64"
]

# Enable syscall tables for individual architectures.
aarch64 = []
arm = []
loongarch64 = []
mips = []
mips64 = []
powerpc = []
powerpc64 = []
riscv32 = []
riscv64 = []
s390x = []
sparc = []
sparc64 = []
x86 = []
x86_64 = []

# Enables Serialize/Deserialize impls.
serde = ["dep:serde", "serde_repr"]

# Generates instructions that are compatible with thumb-mode. This is set
# automatically by `build.rs` if the target supports thumb-mode.
thumb-mode = []

# Kernel version selection (pick exactly one).
# By default, we target Linux 6.12 across all ISAs.
default_kernel_5_4 = []
default_kernel_5_10 = []
default_kernel_5_15 = []
default_kernel_6_1 = []
default_kernel_6_6 = []
default_kernel_6_10 = []
default_kernel_6_12 = []

[dependencies]
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
serde_repr = { version = "0.1", optional = true }

[dev-dependencies]
libc = "0.2"
serde_json = "1"

[workspace]
members = [
    "syscalls-gen",
]

[package.metadata.docs.rs]
features = ["std", "serde", "all", "default_kernel_6_12"]
no-default-features = true
rustdoc-args = ["--cfg", "docsrs"]
targets = ["x86_64-unknown-linux-gnu"]