Reference

Research Papers

Academic and industry papers that directly informed RoExpress design. Each entry notes which module it influenced and the specific mechanism it describes.

These are real papers. Links go to the original publications. Reading them is optional | the docs explain how each mechanism works | but they're here if you want to go deeper.

Ziv & Lempel, 1977 | LZ77 Compression

Ziv, J., & Lempel, A. (1977). A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, 23(3), 337–343.

Defines the sliding window algorithm at the core of Codec. The algorithm scans backwards through a history window to find the longest match, then outputs a (offset, length, literal) triple. Repeated strings in JSON payloads | repeated keys, common values | compress well with as little as a 128-byte window.

Used in: Codec | the compress = true route option

Planned extension: Deflate (Huffman stage on top) | see Roadmap


Bernier, 2001 | Lag Compensation

Bernier, Y. W. (2001). Latency compensating methods in client/server in-game protocol design and optimization. Proceedings of the Game Developers Conference.

Describes the hit validation algorithm used in Stream. The server keeps a rolling history of player positions. When a hit claim arrives, it rewinds to the timestamp the client was at when they fired, and validates against the rewound position rather than the current one. This makes hit registration fair at 100–200 ms ping without client-side prediction.

Used in: Stream | ch:Rewind(userId, timestamp) in the FPS guide


Fiedler, 2008–2018 | Game Networking

Fiedler, G. (2008–2018). Gaffer on Games | Articles on Game Networking. gafferongames.com

A series of articles covering reliable UDP, snapshot interpolation, delta compression, and state synchronisation. The Stream channel model | one buffer, one fire per tick, delta-only records | directly follows the patterns Fiedler describes for snapshot-based sync. The unreliable Broadcast module reflects the fire-and-forget unreliable channel pattern.

Used in: Stream | tick-rate channel design, delta records


RFC 2697, 1999 | Token Bucket Algorithm

Heinanen, J., & Guerin, R. (1999). A Single Rate Three Color Marker. RFC 2697, IETF.

Defines the token bucket rate limiter that TokenBucket implements. Tokens accumulate at a fixed refill rate up to a maximum capacity. Each request consumes one token. Requests beyond capacity are rejected with 429. The RFC's "single rate" model maps directly | burst capacity handles legitimate traffic spikes without permanently throttling active players.

Used in: TokenBucket | all request-per-player rate limiting


Fielding, 2000 | REST Architectural Style

Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, UC Irvine.

The dissertation that defined REST. Chapter 5 ("Representational State Transfer") describes the uniform interface constraint | using a fixed set of verbs (GET, POST, PUT, DELETE) on identified resources. RoExpress brings this model to Roblox: routes are resource identifiers, HTTP verbs replace opaque event names, and status codes replace boolean success flags. The constraint that requests contain all needed state (stateless server) is relaxed | handlers have access to server-side per-player data | but the interface uniformity benefit holds.

Used in: App, Network, Port | the entire HTTP-style routing model


See also

Codec | LZ77 implementation  ·  Stream | lag compensation implementation  ·  TokenBucket | rate limiter  ·  Design Decisions | how these papers shaped specific choices  ·  Roadmap | Deflate (Huffman + LZ77) planned