Crates.io | std-shims |
lib.rs | std-shims |
version | 0.2.0 |
created_at | 2023-04-22 08:42:21.45503+00 |
updated_at | 2025-09-18 20:33:43.329974+00 |
description | A series of std shims to make alloc more feasible |
homepage | |
repository | https://github.com/serai-dex/serai/tree/develop/common/std-shims |
max_upload_size | |
id | 845881 |
size | 13,452 |
std
shimsstd-shims
is a Rust crate with two purposes:
core
and alloc
The goal is to make supporting no-std
environments, and older versions of
Rust, as simple as possible. For most use cases, replacing std::
with
std_shims::
and adding use std_shims::prelude::*
is sufficient to take full
advantage of std-shims
.
std-shims
only aims to have items mutually available between alloc
(with
extra dependencies) and std
publicly exposed. Items exclusive to std
, with
no shims available, will not be exported by std-shims
.
HashSet
and HashMap
are provided via hashbrown
. Synchronization
primitives are provided via spin
(avoiding a requirement on
critical-section
). Sections of std::io
are independently matched as
possible. rustversion
is used to detect when to provide polyfills.
No guarantee of one-to-one parity is provided. The shims provided aim to be sufficient for the average case. Pull requests are welcome.