WARNING: This project has been discontinued. Do not use for new work.
Mara is a lightweight state container that allows you to write simple code to manage state in Roblox. It is inspired by Reflex and Valtio.
You can install Mara on Wally.
Alternatively, you can check out the latest GitHub Release to download the .rbxm
file.
Take me to the documentation โ
Mara uses documents, containers that hold state.
local Mara = require(ReplicatedStorage.Packages.Mara)
local createDocument = Mara.createDocument
type Document<Contents> = Mara.Document<Contents>
type Contents = {
a: number,
b: boolean
}
local document = createDocument({
a = 0,
b = false
}) :: Document<Contents>
Mara was designed to make managing state simple and straightforward. Make edits to your document, and watch for changes!
local watch = Mara.watch
local function selectA(contents: Contents)
return contents.a
end
watch(document, selectA, function(a: number)
print(a)
end)
document:edit(function(contents: Contents)
contents.a += 1
end)
This project is under the MIT license.