6 releases
0.0.0-2023-05-28 | Jan 26, 2024 |
---|---|
0.0.0-2023-05-13 | May 13, 2023 |
0.0.0-2023-05-06 | May 7, 2023 |
0.0.0-2023-05-05 | May 5, 2023 |
0.0.0-2023-05-03 | May 3, 2023 |
#213 in Memory management
Used in valrow
480KB
4.5K
SLoC
ialloc
Allocator interface traits for Rust
Raison d'être
- Why not
core::alloc::Allocator
/allocator_api
?- 7+ years unstabilized and counting.
- I want container allocations this decade, thanks!
- We can aim to be compatible and interopable with it, if/when it stabilizes, or via separate nightly crates.
- Why not
core::alloc::GlobalAlloc
?- Win32
FreeSid
has no equivalent arbitrary allocation function to implementGlobalAlloc::alloc
with. bgfx::alloc
has no equivalent arbitrary free function to implementGlobalAlloc::dealloc
with.- Split alloc/free/realloc traits will help avoid bugs and misuse!
- That said, we can aim to be compatible and interopable with it.
- Win32
- Rust-style traits are annoying to adapt to C-style allocators. This provides more C-friendly traits as options.
Out of scope
- NUMA? Although ask again later.
- Physical GPU memory allocation, probably. Might warrant a related crate?
- ID/handle allocation, perhaps. Might warrant a related crate?
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.3–1.4MB
~14K SLoC