Rust's (unofficial) extended standard library: simplicity, performance and supply chain security for everyone
Inspired by Go's extensive standard library, we are building Rust's extended standard library to bring simplicity, performance and supply chain security to every Rust developer.
Learn more in the announcement post: https://kerkour.com/stdx
See DESIGN.md for design principles and lessons learned.
Tier 1 platforms are extensively checked and tested.
- x86_64 Linux (
x86_64-unknown-linux-gnu/x86_64-unknown-linux-musl) - aarch64 Linux (
aarch64-unknown-linux-gnu/aarch64-unknown-linux-musl) - wasm32 (
wasm32-wasip1) - aarch64 macOS (
aarch64-apple-darwin)
Tier 2 platforms are guaranteed to build but may or may not be tested depending on the current hardware availability.
- aarch64 Android (
aarch64-linux-android) - aarch64 iOS (
aarch64-apple-ios) - riscV32imac Bare Metal (
riscv32imac-unknown-none-elf) - armv7E-M Bare metal (
thumbv7em-none-eabi)
Tier 3 targets are those which the Rust codebase has support for, but are not built or tested automatically, so they may or may not work.
- Everything else supported by Rust: https://doc.rust-lang.org/stable/rustc/platform-support.html
To avoid namespace clashes and supply chain risks, we do not use a centralized package repository. Import packages directly from source, for example:
base64 = { git = "https://github.com/rust-stdx/stdx", branch = "main" }
# or to pin a commit
base64 = { git = "https://github.com/rust-stdx/stdx", rev = "1234" }
# or to use Codeberg
base64 = { git = "https://codeberg.org/rust-stdx/stdx", branch = "main" }
# or fork it and use your own mirror
base64 = { git = "https://git.[my-organization].com/[username]/stdx", branch = "main" }Contrary to what the name may suggest, most packages also support no_std environments by disabling the default std feature, and some also work without alloc by disabling the alloc feature. Look at the documentation of individual packages to learn more.
Other than crates in the beta repository, the main branch is considered stable. Minor breaking changes may happen from time to time, but we will do our best to reduce disruptions.
https://rust-stdx.github.io/stdx
|
Pingoo |
stdx is only possible thanks to our awesome partners!
Join our partner program to invest in the future of Rust and get unfair advantages such as end-to-end supply chain traceability and security, priority support and roadmap prioritization. See FUNDING.md or reach out at code@pingoo.io to learn more.
Contributions are welcome, especially bug reports, improvement ideas and new package suggestions.
Except for minor typos, no pull request will be accepted without a preliminary discussion. Please open an issue first.
Commits need to be signed and squashed.
Please keep the size of your Pull / Merge requests reasonable.
Like all humans, our time is precious. Be succinct, precise and use your brain.
Then:
rustup default stableAnd you are ready to Go Rust!
See Makefile for the most common commands used during development.
MIT (LICENSE.txt)
Any contribution submitted for inclusion in this project shall be licensed as above without any additional terms or conditions.
| Package | Forked from | Commit | Original License |
|---|---|---|---|
bel |
https://github.com/cel-rust/cel-rust | 8287d04156a1b31efe0dd53db78e943fef15c59a | MIT |
cron |
https://github.com/zslayton/cron | ?? | MIT |
anyerr |
https://github.com/dtolnay/anyhow | 5a88bc48ca18c9720be292487dcdcbc93004d15a | MIT |
constant_time_eq |
https://codeberg.org/cesarb/constant_time_eq | f5f9476a7f84206ecda2b33f3eb2a3fc1badbbe6 | MIT |
count_instructions |
https://github.com/cesarb/count_instructions | ce2b66ff3fc2aa16fd330d00a2f60e8288847228 | MIT |
crc32 |
https://github.com/srijs/rust-crc32fast | 479ecdf0174dd3a0f7d48b2f66a386d8d2369963 | MIT |
embed |
https://github.com/pyrossh/rust-embed | 105fdfebab5820ea0628149ee62b34f6d2df3bb8 | MIT |
derivative |
https://github.com/mcarton/rust-derivative | 5179a968ca6d70792f62dfe6727ab8d5b8b5cf5e | MIT |
form_urlencoded |
https://github.com/servo/rust-url | 54346fa288e16b25b71c45149d7067c752b450e0 | MIT |
indexmap |
https://github.com/indexmap-rs/indexmap | 41a870887c4c77adf665886e63df08f406bfe37a | MIT |
ipnetwork |
https://github.com/achanda/ipnetwork | f01575cbf2fc596c0a1761c122aa92525cbb7974 | MIT |
maxminddb |
https://github.com/oschwald/maxminddb-rust | b5a6ccc2f1c8e990b54bbac648f524cdf043522a | ISC |
media_type |
https://github.com/seanmonstar/mime + https://github.com/abonander/mime_guess | 1ae11679916b18fcced93c11104b7aed53bd35a2 | MIT |
memmem |
https://github.com/jneem/memmem | d6e6a0b1fb391539cf8511e7a2de76016d86a870 | MIT |
num_cpus |
https://github.com/seanmonstar/num_cpus | 7c03fc930cc47a9b94e8ca66ca44ef1a454c8f51 | MIT |
percent_encoding |
https://github.com/servo/rust-url | 54346fa288e16b25b71c45149d7067c752b450e0 | MIT |
ryu |
https://github.com/dtolnay/ryu | 8234c4d95f97565bfa562cd1572bb0e8ed80cc44 | Apache 2.0 |
serde_bytes |
https://github.com/serde-rs/bytes | f68517945676915a9f6384ed70b67b7e8dae658b | MIT |
serde_urlencoded |
https://github.com/nox/serde_urlencoded | 0cca840185fa85b39e2cc8a0b2547fff5ace8e68 | MIT |
serde_yaml |
https://github.com/dtolnay/serde-yaml | 2009506d33767dfc88e979d6bc0d53d09f941c94 | MIT |
tld |
https://github.com/rushmorem/publicsuffix | 47958d65a3eab3a01e4a9cf46ccf40c11a7e8052 | MIT |
thiserror |
https://github.com/dtolnay/thiserror | b1827ee06f81a7d7f954e676771e19a97f9f8e3b | MIT |
unsafe_libyaml |
https://crates.io/crates/unsafe-libyaml | 417668ce6565ece14bbd9b4a73137d9241ea1365 | MIT |
zeroize |
https://github.com/RustCrypto/utils | 34a6ebcb9b920ec7ae5809e470fce94fe7c0cb55 | MIT |