{"id":13579081,"url":"https://github.com/diatom-lang/diatom","last_synced_at":"2025-04-05T20:33:03.534Z","repository":{"id":62721946,"uuid":"562015622","full_name":"diatom-lang/diatom","owner":"diatom-lang","description":"The diatom programming language","archived":false,"fork":false,"pushed_at":"2023-03-03T07:36:02.000Z","size":1667,"stargazers_count":71,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T09:46:05.049Z","etag":null,"topics":["programming-language","rust"],"latest_commit_sha":null,"homepage":"","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/diatom-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2022-11-05T03:28:03.000Z","updated_at":"2025-03-14T09:12:41.000Z","dependencies_parsed_at":"2024-08-01T15:30:13.780Z","dependency_job_id":"a085cfe4-d326-4779-a9eb-72c89fc7d2b2","html_url":"https://github.com/diatom-lang/diatom","commit_stats":{"total_commits":151,"total_committers":3,"mean_commits":"50.333333333333336","dds":"0.16556291390728473","last_synced_commit":"a6191a49c10d7e15ea1f62b5a7de5a5e2c3d5d8b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diatom-lang%2Fdiatom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diatom-lang%2Fdiatom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diatom-lang%2Fdiatom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diatom-lang%2Fdiatom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diatom-lang","download_url":"https://codeload.github.com/diatom-lang/diatom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399819,"owners_count":20932875,"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":["programming-language","rust"],"created_at":"2024-08-01T15:01:36.358Z","updated_at":"2025-04-05T20:33:00.597Z","avatar_url":"https://github.com/diatom-lang.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# The Diatom Programming Language\n![Unit Tests](https://github.com/diatom-lang/diatom/actions/workflows/rust.yml/badge.svg)\n![doc](https://github.com/diatom-lang/diatom/actions/workflows/rustdoc.yml/badge.svg)\n[![Crates.io][crates-badge]][crates-url]\n[![license][license-badge]][crates-url]\n\n[![dependency status](https://deps.rs/repo/github/diatom-lang/diatom/status.svg)](https://deps.rs/repo/github/diatom-lang/diatom)\n![issue](https://img.shields.io/github/issues/diatom-lang/diatom)\n![pr](https://img.shields.io/github/issues-pr/diatom-lang/diatom)\n![coverage](https://img.shields.io/codecov/c/github/diatom-lang/diatom)\n\n[crates-badge]: https://img.shields.io/crates/v/diatom.svg\n[crates-url]: https://crates.io/crates/diatom\n[license-badge]: https://img.shields.io/crates/l/diatom\n\nA dynamic typed scripting language for embedded use in applications. This project is yet another attempt of being a \"better\" lua.\n\n**Warning**: Project is still in experimental stage and API is considered as unstable.\n\n## Features\n- [x] **Never panic**\\*\n- [x] **High Performance**\\*\\*: Runs at most **2x** speed of lua 5.4, **6x** speed of python 3.10\n- [ ] Support for a tracing jit (Planned) \n- [x] **rustc style** helpful **error message**\n- [x] No global variable\n- [x] No `nil/None` value\n- [x] Has real integer type \n- [x] Has **0-indexed** real **list** type\n- [x] Support **tuple** for multiple return\n- [x] Support for string indexed **table**\n- [x] Support for **meta table** and **OOP style method call syntax**\n- [ ] Support for gradual typing (Planned)\n- [ ] Support for macro system (Planned)\n\n\\*: Panic may still be triggered by external functions  \n\\*\\*: Results are from our benchmarks which may vary betweens different builds and test codes.\n\n \n## Quick Start\n\n#### Try Diatom online\nYou can try diatom at [the online playground](https://diatom-lang.github.io/diatom-playground/).\n\n#### Install with cargo\nMake sure you have [Rust and Cargo](https://doc.rust-lang.org/book/ch01-01-installation.html) installed.\n```sh\ncargo install diatom-cli\ndiatom-cli --help # show help for diatom CLI\ndiatom-cli # Enter diatom REPL console\n```\n\n#### Build from source\nRun the following script:\n```sh\ngit clone https://github.com/diatom-lang/diatom.git\ncd diatom\ncargo run --release # Run interactive console\n```\n\n#### Syntax highlight\n- Vim/Neovim plugin: [diatom.vim](https://github.com/diatom-lang/diatom.vim)\n\n\n## Reference \u0026 Grammar\n\n#### The Reference Book\nThe Diatom Reference (with examples) is available at [here](https://diatom-lang.github.io/reference/). \n\n#### Examples\nFor standard library function and built-in types and methods checks [examples](examples/). These examples are checked by unit tests.\n\n## Embedding in Application\n\n#### Embedding in Rust Application\n\nDiatom is available at [crates.io](https://crates.io/crates/diatom) with detailed examples.\n\nTo use latest build, add this repo to your `Cargo.toml`. Latest build documentation is available [here](https://diatom-lang.github.io/diatom).\n\n#### Use C bindings\n\nWork in progress.\n\n## Feature Showcase\n\n#### Functional style std-lib\n\u003cimg width=\"890\" alt=\"Screenshot 2023-02-19 at 10 23 38 PM\" src=\"https://user-images.githubusercontent.com/63455223/219954981-47d4e2c9-cbac-4f5d-af07-43556ed36ec9.png\"\u003e\n\n#### Pretty error reporting and trace-back\n\u003cimg width=\"885\" alt=\"Screenshot 2023-02-19 at 10 00 53 PM\" src=\"https://user-images.githubusercontent.com/63455223/219954955-1c6b4e10-2549-4184-a39a-70f71fcde29a.png\"\u003e\n\n#### Expression based syntax\n\u003cimg width=\"889\" alt=\"Screenshot 2023-02-19 at 10 25 16 PM\" src=\"https://user-images.githubusercontent.com/63455223/219954993-c5d4f493-3d40-474e-a777-27d2f207511e.png\"\u003e\n\n#### Interactive REPL console with **syntax highlight**\n\u003cimg width=\"890\" alt=\"Screenshot 2023-02-19 at 10 26 39 PM\" src=\"https://user-images.githubusercontent.com/63455223/219955007-f2ebaebc-1265-4cf1-95f1-297825e5fed7.png\"\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiatom-lang%2Fdiatom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiatom-lang%2Fdiatom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiatom-lang%2Fdiatom/lists"}