# axallocator
[](https://crates.io/crates/axallocator)
[](https://docs.rs/axallocator)
[](https://crates.io/crates/axallocator)
Various allocator algorithms behind a unified interface for `no_std` environments.
## Allocator types
- **Byte-granularity**: [`BuddyByteAllocator`], [`SlabByteAllocator`], [`TlsfByteAllocator`]
- **Page-granularity**: [`BitmapPageAllocator`]
- **ID allocator**: [`IdAllocator`]
[`BuddyByteAllocator`]: https://docs.rs/axallocator/latest/axallocator/struct.BuddyByteAllocator.html
[`SlabByteAllocator`]: https://docs.rs/axallocator/latest/axallocator/struct.SlabByteAllocator.html
[`TlsfByteAllocator`]: https://docs.rs/axallocator/latest/axallocator/struct.TlsfByteAllocator.html
[`BitmapPageAllocator`]: https://docs.rs/axallocator/latest/axallocator/struct.BitmapPageAllocator.html
[`IdAllocator`]: https://docs.rs/axallocator/latest/axallocator/trait.IdAllocator.html
## Features
| `bitmap` | Bitmap-based page allocator |
| `tlsf` | TLSF byte allocator |
| `slab` | Slab byte allocator (uses `ax_slab_allocator`) |
| `buddy` | Buddy byte allocator |
| `allocator_api` | Implement `Allocator` (nightly) |
| `page-alloc-*` | Page size / range (e.g. `page-alloc-256m`) |
| `axerrno` | `AxError` integration |
Default: `page-alloc-256m`. Use `full` for all allocators and `allocator_api`.
## Usage
```toml
[dependencies]
axallocator = { version = "0.2", features = ["slab", "buddy"] }
```
## License
GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0. See [LICENSE](LICENSE).