Projects
elfmalloc
written in Rust
elfmalloc is a general-purpose allocator written in Rust. Its performance exceeds that of state-of-the-art allocators such as jemalloc.
Allocator utilities
written in Rust
The following are utilities designed to assist in the implementation of a global allocator in Rust.
- alloc-fmt - Allocator-safe formatting
- malloc-bind - Bindings from the C
malloc
API to the RustAlloc
API - object-alloc - Traits for type-specific allocators
- object-alloc-test - Tests for object allocators
slab-alloc
written in Rust
slab-alloc
provides a typed slab allocator inspired by Jeff Bonwick's original design described in The Slab Allocator: An Object-Caching Kernel Memory Allocator.
mmap-alloc
written in Rust
mmap-alloc
provides a Rust Alloc
which is backed by directly mapping memory pages.
gopack
written in Go
gopack
is a Go package which provides bit packing, including emulation of C bit fields through run-time reflection and code generation.
acl
written in Go
acl
is a Go package providing support for accessing and modifying POSIX access control lists (ACLs).
Machine
written in C
Machine is an emulator for a computer with a simple architecture and instruction set. It is a word-oriented architecture with 32-bit words. It comprises word registers, word-addressed memory, and a simple I/O device. Additionally, it supports a protected mode extension that allows fully safe kernels to be written for it. It is intended to be used in an educational or research setting, allowing binaries to be run universally and without concern for physical architecture.
Recursive RPN Calculator
written in Go
This simple, 150-line program is a standard rpn calculator with a twist. While it behaves exactly the same as a normal rpn calculator, it’s implemented without an explicit stack. Instead, it uses recursion to simulate a stack, and function-passing to allow for the use of arithmetic and other operators.
illegal
written in Go
illegal
is a Go package which provides run-time support for operations which are either not implemented as language features, or which have native support but are explicitly disallowed by the compiler. For example, Go does not have generics; illegal implements common functional, generic functions such as map and filter. For another example, Go allows function pointers to be compared to nil, but not to one another; illegal provides a workaround which allows to function pointers to be compared for equality. Most of illegal’s functionality is achieved through use of Go’s robust run-time reflection.