ax-std 0.7.2

ArceOS user library with an interface similar to rust std
Documentation
[package]
name = "ax-std"
version = "0.7.2"
repository = "https://github.com/rcore-os/tgoskits"
edition.workspace = true
authors = [
    "Yuekai Jia <equation618@gmail.com>",
    "yanjuguang <coolyanjg@163.com>",
    "wudashuai <wu-ds20@mails.tsinghua.edu.cn>",
    "yfblock <321353225@qq.com>",
    "scPointer <bhy18@mails.tsinghua.edu.cn>",
    "Shiping Yuan <robert_yuan@pku.edu.com>",
]
description = "ArceOS user library with an interface similar to rust std"
license.workspace = true

[lib]
name = "ax_std"
crate-type = ["rlib", "staticlib"]

[features]
default = ["alloc", "tls", "fd"]

# Baseline required by every ArceOS Rust application. Applications enable this
# through their own `arceos` feature instead of axbuild completing it at runtime.
arceos = ["paging", "std-compat", "smp"]

# Host-side implementations for OS-specific ArceOS capabilities.
host-test = [
    "ax-api/host-test",
    "ax-hal/host-test",
    "ax-percpu/host-test",
    "ax-runtime/host-test",
]

# libc compatibility surface used when ax-std is linked as fake libc for Rust std.
std-compat = ["ax-alloc/global-allocator", "ax-runtime/std-compat"]

# Multicore
smp = ["ax-runtime/smp", "ax-posix-api/smp"]

# Floating point/SIMD
fp-simd = ["ax-hal/fp-simd", "ax-runtime/fp-simd"]

# User space support
# Enable userspace support without kernel TLS, including when `tls` is enabled.
# User-space TLS remains available through the userspace context APIs.
uspace = ["ax-runtime/uspace"]

# Hypervisor support
hv = ["ax-hal/hv", "fp-simd"]

# Inter-processor interrupts
ipi = ["ax-api/ipi", "ax-runtime/ipi"]
wake-ipi = ["ax-runtime/wake-ipi"]

ext-ld = ["ax-runtime/ext-ld"]

# Memory
alloc = ["ax-api/alloc", "ax-io/alloc", "ax-posix-api/alloc"]
paging = ["alloc", "ax-runtime/paging"]
# Request kernel TLS; `uspace` takes precedence and disables kernel TLS.
tls = ["ax-runtime/tls"]

# Scheduler configuration
lockdep = ["ax-posix-api/lockdep", "ax-runtime/lockdep"]
qperf-metrics = ["ax-runtime/qperf-metrics"]
task-ext = []
tracepoint-hooks = []
stack-guard-page = ["ax-runtime/stack-guard-page"]
stack-protector = ["ax-runtime/stack-protector"]

# File system
fs = [
    "ax-api/fs",
    "ax-posix-api/fs",
    "ax-runtime/fs",
    "ax-driver/nvme",
    "fd",
]
ext4fs = ["fs", "ax-runtime/ext4fs"]
fatfs = ["fs", "ax-runtime/fatfs"]

# Networking
net = [
    "ax-api/net",
    "ax-posix-api/net",
    "ax-runtime/net",
    "ax-driver/virtio-net",
    "fd",
]
vsock = ["ax-runtime/vsock"]
dns = ["net"]

# libc compatibility surface used when ax-std is linked as fake libc for Rust std.
fd = [
  "ax-posix-api/fd",
  "ax-posix-api/poll",
  "ax-posix-api/pipe",
  "ax-posix-api/epoll",
  "ax-posix-api/eventfd",
]

# Driver feature forwards used by std-aware apps that depend on `axstd` directly.
nvme = ["ax-driver/nvme"]
virtio-net = ["ax-driver/virtio-net"]
virtio-gpu = ["ax-driver/virtio-gpu"]
virtio-input = ["ax-driver/virtio-input"]
virtio-socket = ["ax-driver/virtio-socket"]

# Display
display = ["ax-api/display", "ax-runtime/display"]

# Input
input = ["ax-runtime/input"]

# USB
usb = ["ax-driver/usb"]

# Real Time Clock (RTC) Driver.
rtc = ["ax-runtime/rtc"]
# Backtrace
backtrace = ["axbacktrace/alloc"]
dwarf = ["axbacktrace/dwarf"]

[dependencies]
ax-api.workspace = true
ax-alloc.workspace = true
axbacktrace.workspace = true
ax-driver.workspace = true
ax-hal.workspace = true
ax-io.workspace = true
ax-lazyinit.workspace = true
ax-percpu.workspace = true
ax-posix-api.workspace = true
ax-runtime.workspace = true
libc.workspace = true
syscalls.workspace = true
thiserror.workspace = true