[package]
edition = "2024"
rust-version = "1.85"
name = "armybox"
version = "0.3.0"
authors = ["Pegasus Heavy Industries <contact@pegasusheavy.industries>"]
build = false
exclude = [
"docs/",
"dist/",
"fuzz/",
"packaging/",
"scripts/",
".github/",
"target/",
"benches/",
"crates/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A memory-safe #[no_std] BusyBox/Toybox clone in Rust - 299 Unix utilities in ~500KB"
homepage = "https://pegasusheavy.github.io/armybox"
documentation = "https://docs.rs/armybox"
readme = "README.md"
keywords = [
"busybox",
"toybox",
"no_std",
"embedded",
"unix",
]
categories = [
"command-line-utilities",
"no-std",
"embedded",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/pegasusheavy/armybox"
[features]
abp = [
"alloc",
"dep:abp",
]
acpi = []
alloc = []
android = ["alloc"]
apk = ["alloc"]
arch = []
arp = []
arping = []
ascii = []
awk = []
base64 = []
basename = []
blkdiscard = []
blkid = []
blockdev = []
boolean = []
brctl = []
bzip2 = []
cal = []
cat = []
cd = []
chattr = []
chgrp = []
chmod = []
chown = []
chroot = []
chrt = []
chvt = []
cmp = []
comm = []
compress = []
count = []
cp = []
cpio = []
cut = []
date = []
dd = []
deallocvt = []
default = [
"alloc",
"full",
]
devmem = []
df = []
diff = []
dirname = []
dmesg = []
dnsdomainname = []
dos2unix = []
du = []
echo = []
eject = []
env = []
ether_wake = []
expand = []
expr = []
factor = []
fallocate = []
fgconsole = []
file = []
find = []
flock = []
fmt = []
fold = []
free = []
freeramdisk = []
fsfreeze = []
fstype = []
fsync = []
ftpget = []
ftpput = []
full = [
"basename",
"cat",
"cd",
"chattr",
"chgrp",
"chmod",
"chown",
"cp",
"dd",
"dirname",
"file",
"find",
"fstype",
"install",
"link",
"ln",
"ls",
"lsattr",
"makedevs",
"mkdir",
"mkfifo",
"mknod",
"mktemp",
"mv",
"patch",
"pwd",
"readlink",
"realpath",
"rm",
"rmdir",
"setfattr",
"shred",
"split",
"stat",
"sync",
"touch",
"truncate",
"unlink",
"xargs",
"awk",
"comm",
"cut",
"dos2unix",
"echo",
"expand",
"fmt",
"fold",
"grep",
"head",
"nl",
"paste",
"printf",
"rev",
"sed",
"seq",
"sort",
"strings",
"tac",
"tail",
"tee",
"tr",
"unexpand",
"uniq",
"unix2dos",
"wc",
"yes",
"acpi",
"arch",
"blkdiscard",
"blkid",
"blockdev",
"cal",
"chroot",
"chvt",
"date",
"deallocvt",
"devmem",
"df",
"dmesg",
"dnsdomainname",
"du",
"eject",
"env",
"fallocate",
"fgconsole",
"flock",
"free",
"freeramdisk",
"fsfreeze",
"fsync",
"gpiodetect",
"gpiofind",
"gpioget",
"gpioinfo",
"gpioset",
"groups",
"halt",
"hostid",
"hostname",
"hwclock",
"i2cdetect",
"i2cdump",
"i2cget",
"i2cset",
"i2ctransfer",
"id",
"inotifyd",
"insmod",
"linux32",
"logger",
"login",
"logname",
"losetup",
"lsmod",
"lspci",
"lsusb",
"mkswap",
"modinfo",
"modprobe",
"mount",
"mountpoint",
"nologin",
"nproc",
"openvt",
"partprobe",
"pivot_root",
"poweroff",
"printenv",
"readahead",
"reboot",
"rfkill",
"rmmod",
"rtcwake",
"shuf",
"sleep",
"su",
"swapoff",
"swapon",
"sysctl",
"tty",
"ulimit",
"umount",
"uname",
"uptime",
"users",
"usleep",
"vmstat",
"w",
"watch",
"who",
"whoami",
"chrt",
"ionice",
"iorenice",
"iotop",
"kill",
"killall",
"killall5",
"nice",
"nohup",
"nsenter",
"pgrep",
"pidof",
"pkill",
"pmap",
"prlimit",
"ps",
"pwdx",
"renice",
"setsid",
"taskset",
"timeout",
"top",
"uclampset",
"unshare",
"arp",
"arping",
"brctl",
"ether_wake",
"ftpget",
"ftpput",
"host",
"httpd",
"ifconfig",
"ifdown",
"ifup",
"ip",
"ipaddr",
"ipcalc",
"iplink",
"ipneigh",
"iproute",
"iprule",
"microcom",
"nameif",
"nbd_client",
"nbd_server",
"nc",
"netstat",
"nslookup",
"ping",
"route",
"slattach",
"sntp",
"ss",
"telnet",
"tftp",
"traceroute",
"tunctl",
"vconfig",
"wget",
"bzip2",
"compress",
"cpio",
"gzip",
"tar",
"unzip",
"xz",
"zstd",
"ascii",
"base64",
"boolean",
"cmp",
"count",
"diff",
"expr",
"factor",
"getconf",
"getopt",
"hash",
"help",
"hexdump",
"iconv",
"mcookie",
"memeater",
"mesg",
"mix",
"mkpasswd",
"pwgen",
"readelf",
"screen",
"terminal",
"test",
"time",
"toybox",
"ts",
"tsort",
"unicode",
"uudecode",
"uuencode",
"uuidgen",
"which",
"vi",
"hexedit",
"init",
"getty",
"oneit",
"runlevel",
"sulogin",
"switch_root",
"telinit",
"watchdog",
"sh",
"apk",
"abp",
]
getconf = []
getopt = []
getty = []
gpiodetect = []
gpiofind = []
gpioget = []
gpioinfo = []
gpioset = []
grep = []
groups = []
gzip = []
halt = []
hash = []
head = []
help = []
hexdump = []
hexedit = []
host = []
hostid = []
hostname = []
httpd = []
hwclock = []
i2cdetect = []
i2cdump = []
i2cget = []
i2cset = []
i2ctransfer = []
iconv = []
id = []
ifconfig = []
ifdown = []
ifup = []
init = []
inotifyd = []
insmod = []
install = []
ionice = []
iorenice = []
iotop = []
ip = []
ipaddr = []
ipcalc = []
iplink = []
ipneigh = []
iproute = []
iprule = []
kill = []
killall = []
killall5 = []
link = []
linux32 = []
ln = []
logger = []
login = []
logname = []
losetup = []
ls = []
lsattr = []
lsmod = []
lspci = []
lsusb = []
makedevs = []
mcookie = []
memeater = []
mesg = []
microcom = []
minimal = [
"cat",
"echo",
"ls",
"sh",
"boolean",
"test",
]
mix = []
mkdir = []
mkfifo = []
mknod = []
mkpasswd = []
mkswap = []
mktemp = []
modinfo = []
modprobe = []
mount = []
mountpoint = []
mv = []
nameif = []
nbd_client = []
nbd_server = []
nc = []
netstat = []
nice = []
nl = []
nohup = []
nologin = []
nproc = []
nsenter = []
nslookup = []
oneit = []
openvt = []
partprobe = []
paste = []
patch = []
pgrep = []
pidof = []
ping = []
pivot_root = []
pkill = []
pmap = []
poweroff = []
printenv = []
printf = []
prlimit = []
ps = []
pwd = []
pwdx = []
pwgen = []
readahead = []
readelf = []
readlink = []
realpath = []
reboot = []
renice = []
rev = []
rfkill = []
rm = []
rmdir = []
rmmod = []
route = []
rtcwake = []
runlevel = []
screen = []
sed = []
seq = []
setfattr = []
setsid = []
sh = []
shred = []
shuf = []
slattach = []
sleep = []
sntp = []
sort = []
split = []
ss = []
stat = []
std = ["alloc"]
strings = []
su = []
sulogin = []
swapoff = []
swapon = []
switch_root = []
sync = []
sysctl = []
tac = []
tail = []
tar = []
taskset = []
tee = []
telinit = []
telnet = []
terminal = []
test = []
tftp = []
time = []
timeout = []
top = []
touch = []
toybox = []
tr = []
traceroute = []
truncate = []
ts = []
tsort = []
tty = []
tunctl = []
uclampset = []
ulimit = []
umount = []
uname = []
unexpand = []
unicode = []
uniq = []
unix2dos = []
unlink = []
unshare = []
unzip = []
uptime = []
users = []
usleep = []
uudecode = []
uuencode = []
uuidgen = []
vconfig = []
vi = []
vmstat = []
w = []
watch = []
watchdog = []
wc = []
wget = []
which = []
who = []
whoami = []
xargs = []
xz = []
yes = []
zstd = [
"alloc",
"dep:zstd-nostd",
]
[lib]
name = "armybox"
path = "src/lib.rs"
[[bin]]
name = "armybox"
path = "src/main.rs"
test = false
[[test]]
name = "posix_tests"
path = "tests/posix_tests.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[dependencies.abp]
version = "0.1.0"
features = ["alloc"]
optional = true
default-features = false
[dependencies.libc]
version = "0.2"
[dependencies.zstd-nostd]
version = "0.1.0"
features = ["alloc"]
optional = true
default-features = false
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[profile.bench]
opt-level = 3
[profile.dev]
panic = "unwind"
[profile.release]
opt-level = "z"
lto = "fat"
codegen-units = 1
debug = 0
panic = "abort"
overflow-checks = false
strip = "symbols"