Research Papers
Academic and industry papers that directly informed RoExpress design. Each entry notes which module it influenced and the specific mechanism it describes.
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