Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Atlas Index and Concept Ledger

The ledger keeps breadth honest: new libraries must add a primary design lesson, not merely another example of a familiar pattern.

Coverage mapOverlap controlDeep-dive candidates

Current specimens

LibraryPrimary lessonImportant secondary lessonsClosest overlapDeep-dive value
Claptyped schema for external commandsderive, generated help, validationSerde macroshigh
Serdeconsumer-owned data modeltraits, derive, format separationClap macrosvery high
Rayonextension trait changes executionordering, Send/Sync, work splittingIterator, Itertoolshigh
Bytesshared immutable storagecheap slicing, hidden representationArc, Cowhigh
HTTPprotocol values independent of I/Ogeneric body, deferred builder errorsReqwest buildervery high in lineage
Regexborrowed structure from dynamic textcompile-once object, optional matchparser combinatorshigh
Thiserrorinspectable library error contractderive, sources, enum evolutionAnyhowmedium
Anyhowcontextual application error chaintype erasure, downcastingThiserrormedium
Tempfileownership-driven cleanupDrop, persistence handoffguardshigh
Towerpolicy composition around servicesbackpressure, generic middlewareAxum, Hypervery high in lineage
Tracinginstrumentation separated from collectionspans, structured fieldslogging APIshigh
Tokioracing and cancellation through futuresmacros, drop safety, task ownershipFuturesvery high
Reqweststaged asynchronous operationbuilder, Serde, response policyHTTP, Hypercomplete deep dive

Empty primary lessons

These are candidates because the current atlas does not yet represent their main consumer-facing idea.

Missing lessonStrong candidate librariesWhat would make the specimen distinct?
Validated domain typesURL, UUID, Semver, Timeparse once, then expose domain operations
Non-UTF-8 textbstr, OsStr, pathsavoid promising Unicode where bytes are valid
Ordered associative collectionsIndexMapmap vocabulary plus stable insertion order and indices
Graph identity and traversalPetgraphtyped node indices separated from stored weights
Parser compositionWinnow, Nomsmall parsers as values that combine and return structured errors
Capability guardsMutex, Parking Lotpossession of a guard grants temporary access and cleanup
Read-mostly shared configurationArcSwapcheap snapshots without holding a read lock
Compile-time checked queriesSQLxexternal schema knowledge reflected in generated Rust types
Property-based input spacesProptestgenerators and shrinkers composed as strategies
Forward-compatible flag setsBitflagsnamed set operations over compact unknown-tolerant bits
Typestate configurationRustlsconfiguration stages expose only valid next operations
Inline-storage policySmallVeccollection vocabulary with representation-dependent performance
Pin projectionPin Projectmacro creates safe access to structurally pinned fields
Scoped threadsCrossbeamthreads may borrow stack data when scope proves their lifetime
Format-preserving syntax treesSyn + Quoteparse Rust syntax, transform typed nodes, emit tokens

Overlap rules

A candidate becomes a full specimen when it satisfies all three conditions:

  1. Its primary lesson is absent or materially sharper than the current entry.
  2. A complete program can demonstrate that lesson without large scaffolding.
  3. The failure or tradeoff boundary is interesting enough to analyze.

Otherwise it becomes a comparison:

  • Itertools belongs beside Iterator and Rayon unless an adaptor exposes a new extension-trait or ownership lesson.
  • Hyper does not need a second fluent-request specimen; it belongs in the HTTP lineage as the lower-level connection and streaming boundary.
  • Nom and Winnow should initially share one comparative parser-combinator entry.
  • Parking Lot should be compared with std::sync::Mutex, not praised merely for offering another lock.
  • UUID, URL, Semver, and Time can begin as one “validated domain values” page; only their distinct operations should determine later deep dives.

Prioritization rubric

Score potential additions from 0–2 on each dimension:

Dimension012
Ecosystem relevanceniche/internalestablishedfoundational/directly widespread
Concept noveltyduplicates atlassharper variationempty primary lesson
Consumer clarityheavy setupunderstandablecompelling small program
Failure insightlittle boundaryordinary errorinstructive compile/runtime boundary
Source trailinaccessible/noisytraceabledocumented and locally inspectable
Tradeoff depthmostly conveniencereal compromisecompeting representations worth debating

The score prioritizes research; it does not declare a library objectively better. A lower-reach library with a uniquely expressive contract can still be the best teaching specimen.

Evidence status

All current atlas programs compile under Rust 1.91.0 and use versions pinned by the repository’s Cargo.lock. Their stdout was captured during the book build review. Boundary behavior is derived from public contracts and should be verified with a dedicated negative example before a specimen is promoted to a source-level deep dive.