{"id":40796887,"url":"https://github.com/cxmeel/sift","last_synced_at":"2026-01-21T20:23:57.682Z","repository":{"id":38442437,"uuid":"484832842","full_name":"cxmeel/sift","owner":"cxmeel","description":"Immutable data library for Luau.","archived":false,"fork":false,"pushed_at":"2025-03-12T20:29:00.000Z","size":1942,"stargazers_count":74,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-01T06:00:26.187Z","etag":null,"topics":["conversion","data","dictionary","immutability","immutable","luau","roact","roblox","roblox-lua","roblox-rojo","robloxdev","robloxlua","rojo","typescript","utility","wally"],"latest_commit_sha":null,"homepage":"https://cxmeel.github.io/sift/","language":"Lua","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cxmeel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"csqrl","custom":["https://roblox.com/groups/9536808/csqrl#!/store"]}},"created_at":"2022-04-23T18:59:21.000Z","updated_at":"2025-10-15T11:13:24.000Z","dependencies_parsed_at":"2023-02-18T12:19:36.271Z","dependency_job_id":"b1edd2a3-a006-4ea5-a786-7e8325847fdb","html_url":"https://github.com/cxmeel/sift","commit_stats":null,"previous_names":["csqrl/sift"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/cxmeel/sift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cxmeel%2Fsift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cxmeel%2Fsift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cxmeel%2Fsift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cxmeel%2Fsift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cxmeel","download_url":"https://codeload.github.com/cxmeel/sift/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cxmeel%2Fsift/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28641544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T18:04:35.752Z","status":"ssl_error","status_checked_at":"2026-01-21T18:03:55.054Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conversion","data","dictionary","immutability","immutable","luau","roact","roblox","roblox-lua","roblox-rojo","robloxdev","robloxlua","rojo","typescript","utility","wally"],"created_at":"2026-01-21T20:23:57.612Z","updated_at":"2026-01-21T20:23:57.669Z","avatar_url":"https://github.com/cxmeel.png","language":"Lua","funding_links":["https://github.com/sponsors/csqrl","https://roblox.com/groups/9536808/csqrl#!/store"],"categories":[],"sub_categories":[],"readme":"\u003c!-- Links --\u003e\n\n[freddylist/llama]: https://github.com/freddylist/llama\n[osyrisrblx/t]: https://github.com/osyrisrblx/t\n[upliftgames/moonwave]: https://github.com/upliftgames/moonwave\n[upliftgames/wally]: https://github.com/upliftgames/wally\n[sift]: https://github.com/cxmeel/sift\n[sift/releases]: https://github.com/cxmeel/sift/releases\n[sift/wally]: https://wally.run/package/csqrl/sift\n[sift/roblox]: https://www.roblox.com/library/9486684823\n[sift/npm]: https://npmjs.com/package/@rbxts/sift\n[sift/docs]: https://cxmeel.github.io/sift\n\n\u003c!-- Badges --\u003e\n\n[badges/github]: https://raw.githubusercontent.com/gist/cxmeel/56c5f18b229ca1e61feb6eb5fb149f43/raw/githubSource.svg\n[badges/npm]: https://raw.githubusercontent.com/gist/cxmeel/56c5f18b229ca1e61feb6eb5fb149f43/raw/npm.svg\n[badges/roblox]: https://raw.githubusercontent.com/gist/cxmeel/56c5f18b229ca1e61feb6eb5fb149f43/raw/roblox.svg\n[badges/roblox-small]: https://raw.githubusercontent.com/gist/cxmeel/56c5f18b229ca1e61feb6eb5fb149f43/raw/robloxSmall.svg\n\n# Sift\n\n[![Source code][badges/github]][sift] [![NPM Package][badges/npm]][sift/npm] [![Roblox library][badges/roblox]][sift/roblox]\n\n\u003e Sift is no longer actively maintained. If you'd like to contribute, consider creating a fork.\n\nImmutable data library for Luau and roblox-ts.\n\nHeavily based on [@freddylist's Llama][freddylist/llama] library.\n\n[Read the docs \u0026rarr;][sift/docs]\n\n## Quick Start\n\nSift is available from [Wally][sift/wally], the [Roblox Creator Store][sift/roblox] and [GitHub releases][sift/releases].\n\n### Wally\n\nWally is a CLI package manager (much like NPM, Yarn or Cargo) for Roblox by @UpliftGames. Find out more at https://github.com/upliftgames/wally.\n\n```toml\n# wally.toml\n\n[dependencies]\nSift = \"csqrl/sift@x.x.x\" # Replace with current version number\n```\n\n```shell\n$ wally install\n```\n\n### TypeScript\n\nSift includes built-in TypeScript compatibility. The API is identical to the Luau counterpart.\n\n```shell\n$ npm install @rbxts/sift\n```\n\n```ts\n// example.ts\nimport { Dictionary } from \"@rbxts/sift\"\n\nDictionary.merge({ a: 1, c: 2 }, { b: 3, c: Sift.None }) // { a: 1, b: 3 }\n```\n\n### Manual Installation\n\nGrab a copy [from the Roblox Creator Store][sift/roblox] or [GitHub releases][sift/releases], and drop it into Studio. The Sift model file can be synced in using Rojo.\n\n## Contributions\n\nSift is not open for contributions and is not actively maintained. If you would like to contribute, please consider creating a fork.\n\n## What's Changed?\n\nAs per the recommendations in [Llama's README][freddylist/llama], the following changes have been made:\n\n- Sift utilises native Luau types. Llama used [@osyrisrblx/t][osyrisrblx/t] for type checking, which meant that types were only checked at runtime. **Sift does not use runtime type-checking.** You will need to install a library like [GreenTea](https://github.com/Corecii/GreenTea) or [t][osyrisrblx/t] manually.\n- Organised tests. `*.spec` files are now alongside their source files, making it easier to locate them.\n- Documentation is now generated using [@upliftgames' moonwave][upliftgames/moonwave] (Docusaurus). This makes it quick and easy to add new documentation, and provides a pleasant experience for the user.\n- Built-in TypeScript typings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcxmeel%2Fsift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcxmeel%2Fsift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcxmeel%2Fsift/lists"}