Alternatives:
Hello all! Since I do not do much Roblox game development these days (among other reasons), I will no longer be maintaining Llama.
Thank you to all of Llama's contributors, and I am verry sorry for any inconveniences I have caused.
If you have a good alternative to Llama, email me at [email protected] so I can link to it in this readme and archive Llama.
I recommend you do not fork Llama for these reasons:
- Runtime typechecking (present in Llama) is not really needed anymore with the advent of Luau type analysis.
- The tests are a bit of a mess.
- I'm sure Llama could've been designed better.
- Many other minor reasons...
If I do return to Roblox development in the future and no alternatives have been created yet, I may create a new immutable collections library. I will then hopefully have more experience with open-source projects and software development in general.
Thank you all again!
There are a few ways to get started with Llama.
- Download the
.rbxmx
model file from the latest release on the Llama releases page. - Insert the model anywhere in a Roblox place!
- Copy the
src
directory of Llama into your project. - Rename it to
Llama
. - Make sure you put
t
under the Llama directory. (this step will hopefully be resolved in the future by package managers or Luau type-checking) - Use something like Rojo to sync your project to Roblox Studio!
- Navigate to where you want to keep your submodules in Git bash.
- Run
git submodule add https://github.com/F-RDY/llama.git
. - Using something like Rojo, set up your project to sync
Llama/src
into Roblox Studio!
Coming Soon™
To use Llama, simply require it as a module from where you installed it! It is also recommended that you set Llama.Dictionary
, Llama.List
, and Llama.Set
to their own variables; otherwise, you'll be typing a lot!
-- Other modules...
local Llama = require(LlamaPath)
local Dictionary = Llama.Dictionary
local List = Llama.List
local Set = Llama.Set
Rodux requires your state to be immutable, so Llama is a great choice for manipulating it!
local function reducer(state, action)
if action.type == "Add" then
return Dictionary.merge(state, {
counter = counter + 1
})
elseif action.type == "Subtract" then
return Dictionary.merge(state, {
counter = counter - 1
})
end
end
Visit the docs for examples and API reference.
- Mathilde for the Llama icon
- Llama's contributors
Llamas are members of the Camelid group of mammals along with alpacas, camels, and dromedaries, which are known for being very stubborn but reliable animals.