Read after doing

Resources, ordered by the lab that makes them useful.

The list stays here, but the rule changes: read after retrieval exposes a gap, not before the work starts.

Suggested Order

This is the spine. Labs and reviews are the reps around it.

  1. 1Rust Book + Rustlings.
  2. 2Command Line Apps in Rust.
  3. 3Build tiny fixed-width ASCII parser from byte slices.
  4. 4Read pcap-savefile + RFC 791 + RFC 768.
  5. 5Build PCAP -> UDP payload extractor.
  6. 6Add quote-message parser.
  7. 7Learn heaps, then implement bounded 3-second reorder.
  8. 8Add tests and malformed-input cases.
  9. 9Read Rust Performance Book, profile, reduce allocations.
  10. 10Read Harris for market context.

Must-Do Core Path

Read narrowly after the matching lab exposes a gap. The sequence matters more than volume.

1. Rust fundamentals

The Rust Programming Language

Read: ownership, borrowing, slices, enums, pattern matching, error handling, iterators, tests, I/O.

Rustlings

Do alongside the book. This turns passive Rust knowledge into muscle memory.

Comprehensive Rust

Good second pass if ownership/lifetimes still feel slippery.

3. Intermediate Rust for clean production code

Pick one:

Programming Rust, 2nd ed.

Best broad book for Rust as a systems language.

Rust for Rustaceans

Better after you already know Rust basics; useful for API design, traits, lifetimes, testing.

4. Binary parsing and byte-level work

BinaryHeap

Also review slices, BufReader, BufWriter, Read, and Write in std docs.

byteorder

Or use std from_be_bytes / from_le_bytes.

zerocopy

Only as a later reference. For the Tsuru sample, plain checked slicing is probably better.

8. Testing parsers

proptest

Good for malformed packet/property tests: parser never panics, short payload rejected, encoded/decode fields agree.

Market Data / Trading Context

Start practical. The Tsuru packet spec is primary; real feed specs add context after that.

Optional Systems Depth

Use these only after the parser is correct, tested, and measured.