ezrosent/allocators-rs

Allocators in Rust

Rust

318

202 commits

updated Apr 4, 2020

See the code

README

Allocators in Rust

Build Status Build status

Looking for elfmalloc in particular? It's here.

This repository encompasses a number of different crates. Some are general memory allocators, some are object allocators (allocators which allocate a specific type of object), and some are utility crates providing various features needed to implement these allocators.

The info directory contains more detailed information, including performance measurements. Aside from info, all top-level directories are Rust crates. More detailed information on each crate can be found in the crate's README.md.

Allocator crates

CrateDescription
elfmallocA general-purpose multi-threaded allocator providing both Rust Alloc and C malloc APIs
slab-allocAn object-specific slab allocator in the same tradition as the original slab allocator by Jeff Bonwick
bsallocA simple general-purpose "bootstrapping" allocator used in the implementation of other allocators
mmap-allocAn Alloc API which is a thin wrapper around mmap (on Unix) or VirtualAlloc (on Windows)

Utility crates

CrateDescription
alloc-fmtAllocation-safe formatting and debugging macros
alloc-tlsAllocation-safe thread-local storage
bagpipeFast, concurrent data structures including queues and a weakly-ordered bag data structure (design)
malloc-bindBindings to allow a Rust Alloc to implement the C malloc API
object-allocTraits representing type-specific variants of the Alloc trait
object-alloc-testA correctness test suite for object allocator implementations (uses the traits defined in object-alloc)

Contributing

Interested in contributing? We'd love to have you! Check out CONTRIBUTING.md.

Copyrights in this project are retained by their contributors. No copyright assignment is required to contribute to this project. For a list of authors, see this repository's version control history.

This project is dual-licensed under the Apache 2.0 license or the MIT license at your option. Copies of these licenses can be found in the LICENSE-APACHE and LICENSE-MIT files respectively.

ezrosent/allocators-rs

Allocators in Rust

Rust

318

202 commits

updated Apr 4, 2020

See the code

README

Allocators in Rust

Build Status Build status

Looking for elfmalloc in particular? It's here.

This repository encompasses a number of different crates. Some are general memory allocators, some are object allocators (allocators which allocate a specific type of object), and some are utility crates providing various features needed to implement these allocators.

The info directory contains more detailed information, including performance measurements. Aside from info, all top-level directories are Rust crates. More detailed information on each crate can be found in the crate's README.md.

Allocator crates

CrateDescription
elfmallocA general-purpose multi-threaded allocator providing both Rust Alloc and C malloc APIs
slab-allocAn object-specific slab allocator in the same tradition as the original slab allocator by Jeff Bonwick
bsallocA simple general-purpose "bootstrapping" allocator used in the implementation of other allocators
mmap-allocAn Alloc API which is a thin wrapper around mmap (on Unix) or VirtualAlloc (on Windows)

Utility crates

CrateDescription
alloc-fmtAllocation-safe formatting and debugging macros
alloc-tlsAllocation-safe thread-local storage
bagpipeFast, concurrent data structures including queues and a weakly-ordered bag data structure (design)
malloc-bindBindings to allow a Rust Alloc to implement the C malloc API
object-allocTraits representing type-specific variants of the Alloc trait
object-alloc-testA correctness test suite for object allocator implementations (uses the traits defined in object-alloc)

Contributing

Interested in contributing? We'd love to have you! Check out CONTRIBUTING.md.

Copyrights in this project are retained by their contributors. No copyright assignment is required to contribute to this project. For a list of authors, see this repository's version control history.

This project is dual-licensed under the Apache 2.0 license or the MIT license at your option. Copies of these licenses can be found in the LICENSE-APACHE and LICENSE-MIT files respectively.

Project health

Overall

2.0/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

Bastian Köcher

848 followers · starred Jan 2021

Philipp Oppermann

3,143 followers · starred Oct 2017

Hideyuki Tanaka

514 followers · starred Sep 2017

Brett Hoerner

137 followers · starred Sep 2017