This post is for Red 1.x. To view the latest version of Red, please go here
What is Red?
Red is a networking library for Roblox that combines a good structure with blazing fast performance to provide a good developer experience. Red is suitable for any project, from tiny experiments to large-scale games.
Structure
Red allows the developer to use whatever structure they’d like. However, Red also has it’s own recommended structure that enforces good practices and creates more performant code.
Performance
Unlike many other networking libraries, which very simply wrap around Remote Events and Functions, Red uses a single Remote Event and identifiers to pack remote events and functions into a single call. This event packing allows Red to use much less bandwidth than normal Remote Event usage. This saved bandwidth comes at a minimal performance cost, and is often faster than other libraries because of it’s simplicity.
To view benchmarks yourself, Red has a testing place. Here you can view the differences between Red and normal Roblox networking in many cases. Red Testing - Roblox
Developer Experience
Red uses Luau, and is internally typed completely in strict Luau. This creates full autocomplete and type checking for the developer. The Red API is very simple and easy to use, and it fits seamlessly into any project. Red is boilerplate free, there is no setup process.
Examples
local Red = require(Path.To.Red)
local Net = Red.Server("NamespaceName")
Net:On("Message", function(Player, To, Message)
Net:Fire(To, "Message", Message)
end)
Net:On("MessageAll", function(Player, Message)
Net:FireAllExcept(Player, "MessageAll", Message)
end)
local Red = require(Path.To.Red)
local Net = Red.Client("NamespaceName")
Net:Fire("MessageAll", "This is pretty red!")
Getting Started
Head over to the documentation to install and get started!