https://github.com/mkroening/free-list
A free-list-based page/frame allocator.
https://github.com/mkroening/free-list
allocator frame free-list memory page rust
Last synced: 4 months ago
JSON representation
A free-list-based page/frame allocator.
- Host: GitHub
- URL: https://github.com/mkroening/free-list
- Owner: mkroening
- License: apache-2.0
- Created: 2024-05-08T13:32:14.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-18T10:06:13.000Z (6 months ago)
- Last Synced: 2025-09-23T02:24:10.492Z (4 months ago)
- Topics: allocator, frame, free-list, memory, page, rust
- Language: Rust
- Homepage: https://crates.io/crates/free-list
- Size: 58.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# free-list
[](https://crates.io/crates/free-list)
[](https://docs.rs/free-list)
[](https://github.com/mkroening/free-list/actions/workflows/ci.yml)
This crate provides the [`FreeList`] type to allocate pages/frames of virtual/physical memory:
```rust
use free_list::{FreeList, PageLayout};
let mut free_list = FreeList::<16>::new();
unsafe {
free_list.deallocate((0x1000..0x5000).try_into().unwrap()).unwrap();
}
assert_eq!(free_list.free_space(), 0x4000);
let layout = PageLayout::from_size(0x4000).unwrap();
assert_eq!(free_list.allocate(layout).unwrap(), (0x1000..0x5000).try_into().unwrap());
```
For API documentation, see the [docs].
[`FreeList`]: https://docs.rs/free-list/latest/free_list/struct.FreeList.html
[docs]: https://docs.rs/free-list
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](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.