{"id":24886324,"url":"https://github.com/dev-formata-io/stof","last_synced_at":"2025-04-06T02:08:10.715Z","repository":{"id":268626669,"uuid":"904967863","full_name":"dev-formata-io/stof","owner":"dev-formata-io","description":"Stof is a data interchange format that unifies data between systems. It offers fine-grained control and sandboxed manipulation without the need for additional application code and servers.","archived":false,"fork":false,"pushed_at":"2025-03-25T17:15:11.000Z","size":4871,"stargazers_count":48,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-30T01:09:54.194Z","etag":null,"topics":["code-as-data","federated","formata","interchange-format","json","orchestration","stof","unification","validation","yaml"],"latest_commit_sha":null,"homepage":"https://stof.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dev-formata-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"dev-formata-io"}},"created_at":"2024-12-17T22:34:06.000Z","updated_at":"2025-03-25T17:15:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"21f91a28-f3ef-4e33-ad7d-6012369e724f","html_url":"https://github.com/dev-formata-io/stof","commit_stats":null,"previous_names":["dev-formata-io/stof"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-formata-io%2Fstof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-formata-io%2Fstof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-formata-io%2Fstof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-formata-io%2Fstof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dev-formata-io","download_url":"https://codeload.github.com/dev-formata-io/stof/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423514,"owners_count":20936626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["code-as-data","federated","formata","interchange-format","json","orchestration","stof","unification","validation","yaml"],"created_at":"2025-02-01T15:14:38.489Z","updated_at":"2025-04-06T02:08:10.698Z","avatar_url":"https://github.com/dev-formata-io.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"./content/stof.png\" height=\"150\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://docs.stof.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-docs.stof.dev-purple?logo=gitbook\u0026logoColor=white\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/Up5kxdeXZt\"\u003e\u003cimg src=\"https://img.shields.io/discord/1319468398169686016?logo=discord\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/dev-formata-io/stof/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/dev-formata-io/stof/rust.yml\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/stof\"\u003e\u003cimg src=\"https://img.shields.io/crates/d/stof\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/stof\"\u003e\u003cimg src=\"https://img.shields.io/crates/l/stof\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/dev-formata-io/stof/commits/main/\"\u003e\u003cimg src=\"https://img.shields.io/github/commit-activity/m/dev-formata-io/stof\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/stof\"\u003e\u003cimg src=\"https://img.shields.io/crates/size/stof\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n----\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"./content/overview.png\" height=\"200\"\u003e\u003c/p\u003e\n\u003cbr/\u003e\n\n[Stof](https://stof.dev) is a data interchange format that unifies data between systems. It offers fine-grained control and sandboxed manipulation without the need for additional application code and servers.\n\nBecause Stof works with all other data formats and can be used anywhere, it standardizes data handling (by not needing a standard) and makes our lives as developers more fun.\n\nWhether used for configuration, deployment, APIs \u0026 interchange, or in other data specification \u0026 control scenarios, Stof's portable interfaces and code-as-data approach can help save time, improve quality, and give you the tools needed to solve cutting edge problems.\n\n- [Docs](https://docs.stof.dev)\n- [Discord](https://discord.gg/Up5kxdeXZt)\n- [Contact Us](https://stof.dev/contact-us)\n- [Introduction \u0026 Design](https://docs.stof.dev/book/introduction-and-design)\n- [More Information](https://docs.stof.dev/resources-and-information)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"./content/stof.gif\"\u003e\u003c/p\u003e\n\u003cbr/\u003e\n\n## Why\nThe logic and cost involved in deciphering, unifying, and validating data entering and leaving computer systems are growing exponentially, becoming a bottleneck and limiting factor for next-generation federated applications and AI.\n\nStof drastically decreases the amount of application code it takes to do this by moving this logic into the data layer, creating a standard interface that can be used by all systems today for cheaper and higher-quality access to data, while improving application-level security, developer experience, and data governance.\n\n## Getting Started\n### CLI\n[CLI](https://docs.stof.dev/reference/cli) is a standalone way to use Stof outside of an embedded environment.\n```bash\ncargo install stof-cli\n```\n### Rust\nThe Stof [Rust Crate](https://crates.io/crates/stof) is the most fully-featured way to embed and work with Stof. However, we are adding as many languages as possible to this list.\n```bash\ncargo add stof\n```\n### TypeScript (JSR)\nIt is currently possible to use Stof from the browser and in JavaScript host environments through WebAssembly. In this context, Stof is not yet fully featured.\n[Stof JSR](https://jsr.io/@formata/stof)\n\n## Example\n\u003e For declaring data, Stof is a superset of JSON - valid JSON will always be valid Stof.\n``` rust\nusers: [\n    {\n        name: \"Joe Schmo\",       // commas or semi-colons accepted, but optional\n        cm height: 6ft + 1in     // Stof adds units and declarations are expressions\n        age: +32;                // trailing commas or semi-colons are okay\n    },                           // trailing commas in arrays are okay\n]\n\nfn getJoe(): obj {               // Stof adds data types (casting, etc..)\n    for (user in self.users) {\n        if (user.name.toLower().contains(\"joe\")) return user;\n    }\n    return null;\n}\n\n#[main]\nfn main() {\n    let joe = self.getJoe();\n    pln(stringify(joe, 'toml')); // any format loaded into the doc (parse too)\n}\n```\n``` bash\n\u003e stof run example.stof\nage = 32\nheight = 185.42\nname = \"Joe Schmo\"\n```\n\n## Why Use Stof?\n### Accessibility \u0026 Unification\nSimplify data access, making it more straightforward to interact with diverse data sources and destinations. Stof works with other data formats instead of competing, meaning no matter what data format or schema you're interfacing with, Stof can help.\n\n### Code as Data\nAdd custom logic to Stof documents, leveraging their data for a more capable and robust data interface. Offer a safe way to send logic over the network, tying systems together at the data layer.\n\n### Validation\nEnsure integrity by validating data using schemas, defined in Stof, reducing errors and maintaining consistency across applications.\n\n### Transformation \u0026 Structure\nDynamically manipulate data, enabling seamless transformations to meet specific application needs, such as converting units or restructuring data formats.\n\n### Orchestration\nStof is a logical layer between data sources and applications, capable of unification, transformation, validation, structuring, access control, and orchestration between systems, replacing fragile application code typically responsible for these tasks.\n\n## Contributing\nTake a look first at the Stof test suite in `src/tests/tests.stof`, this will give a good jumping off point, but there's a lot to do still overall. We'll update this section as the project progresses with more details on how you can specifically get involved.\n\nThere are lots of opportunities to contribute and use Stof. If you have ideas or want to get involved, just reach out and we'll make it happen.\n\nPlease also consider sponsoring and supporting this project as it's the only way we'll make strides towards our vision of a world where data is more secure, easily governed, and readily available - one with efficient and user-friendly access to high-quality data that is simple and native to the federated and decentralized world we are quickly moving towards.\n\n## License\nApache 2.0. See LICENSE for details.\n","funding_links":["https://github.com/sponsors/dev-formata-io"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev-formata-io%2Fstof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdev-formata-io%2Fstof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev-formata-io%2Fstof/lists"}