Skip to content

SFBdragon/talc

Repository files navigation

Talc Dynamic Memory Allocator

Crates.io Downloads docs.rs

If you find Talc useful, please consider leaving tip via Paypal or Ko-Fi


What is this for?

  • Embedded systems, OS kernels, and other no_std environments
  • WebAssembly modules, as a drop-in replacement for DLmalloc

Why Talc?

Performance:

Features:

  • Safe, lockless TalcCell for single-threaded allocation with GlobalAlloc and Allocator
  • Flexible locking using lock_api for multi-threaded allocation using TalcLock
  • Supports allocator-api2 for using the Allocator API in safe Rust
  • "counters": Provides allocation statistics for debugging and performance insights
  • Supports creating and resizing arbitrarily many heaps, manually or automatically
  • Supports automatic reclaim of unused memory
  • Correctness verified with tests, MIRI, and fuzzing

Why not Talc?

If you're on a mature hosted system, especially one that jemalloc or mimalloc supports, consider those instead. Those provide allocation concurrency, well-tested virtual memory API integration, and are all-round more mature and sophisticated and more cleverly implemented than Talc. Even the default allocator for Rust on Linux, for example, has impressive performance characteristics.

Getting started

About

A fast and flexible allocator for no_std and WebAssembly

Topics

Resources

License

Stars

Watchers

Forks

Contributors