SFBdragon/talc

A fast and flexible allocator for no_std and WebAssembly

Rust

567

141 commits

updated Sep 9, 2026

See the code

README

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

allocator
memory-allocation
nostd
rust
wasm

SFBdragon/talc

A fast and flexible allocator for no_std and WebAssembly

Rust

567

141 commits

updated Sep 9, 2026

See the code

README

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

allocator
memory-allocation
nostd
rust
wasm

Project health

crates.io

Latest release

5.1.1 · Sep 9, 2026

Releases this year

7

Significant stargazers

(top 24 of 39)

Volodymyr Agafonkin

6,267 followers · starred Jun 2025

Jan-Erik Rediger

1,036 followers · starred Dec 2024

Emil Ernerfeldt

8,226 followers · starred May 2025

Eliza Weisman

2,273 followers · starred Jul 2023