{"id":13995289,"url":"https://github.com/epellis/esta","last_synced_at":"2025-07-22T21:32:30.495Z","repository":{"id":79665062,"uuid":"180267858","full_name":"epellis/esta","owner":"epellis","description":"Interpreted language and bytecode VM of my own design written in Rust [Unmaintained]","archived":true,"fork":false,"pushed_at":"2019-05-19T03:21:53.000Z","size":194,"stargazers_count":28,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-10T14:19:00.230Z","etag":null,"topics":["interpreter","lalrpop","programming-language","rust","stack-based","virtual-machine","wasm"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epellis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-04-09T02:20:22.000Z","updated_at":"2024-02-15T10:47:23.000Z","dependencies_parsed_at":"2023-05-14T08:00:12.143Z","dependency_job_id":null,"html_url":"https://github.com/epellis/esta","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epellis%2Festa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epellis%2Festa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epellis%2Festa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epellis%2Festa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epellis","download_url":"https://codeload.github.com/epellis/esta/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227177887,"owners_count":17743194,"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":["interpreter","lalrpop","programming-language","rust","stack-based","virtual-machine","wasm"],"created_at":"2024-08-09T14:03:20.203Z","updated_at":"2024-11-29T17:31:25.096Z","avatar_url":"https://github.com/epellis.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Esta\n\n[![CircleCI](https://circleci.com/gh/epellis/esta.svg?style=shield)](https://circleci.com/gh/epellis/esta)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/epellis/esta.svg?style=popout-square)\n\n\nEsta is a gradually typed, interpreted language and virtual machine implementation of my own design written in Rust\n\n_Interpreted_: `.est` source code is compiled into byte code (simple assembly instructions)\n                and run on the Esta VM.\n\n_Gradually Typed_: The Esta Interpreter can infer variable type (e.g.):\n```c\nvar a: num = 4;     // Explicitly declare a is an int\n\nvar c = a + b;      // Since c and b have unknown types, they adopt a's type\n```\n\n## Syntax\n\nEsta's syntax is an LR(1) grammar that takes most of it's ideas from\nthe C-family of languages. It is most similar to JavaScript and Go.\nHere is an example snippet of code:\n```c\nfun multiply(a, b) {\n    if a \u003c= 0 {\n        return b;\n    } else {\n        return b + multiply(a - 1, b);\n    }\n}\n\nprint(multiply(3, 4) == 12);\n```\n\n## Blog Posts\n- [Writing and traversing an AST in Rust](http://nedellis.com/2019/05/08/esta_1/)\n\n## Development\n\nYou are welcome to check the project out and try some of the demos provided.\n\n__WARNING__: Please note that at it's current state, Esta is pre-alpha and is experiences\nradical, breaking changes daily.\n\n```\ngit clone https://github.com/epellis/esta.git\ncd esta\ncargo build\nRUST_LOG=esta=debug cargo run demos/hello.est\n```\n\nYou can also measure performance by evaluating the\nFibonacci Sequence using a naive recursive O(n^2) algorithm.\n```\ncargo bench\n```\n\n## Deployment\n\n_WIP_: Installer coming soon\n\n```\ncargo run --release my_program.est\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepellis%2Festa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepellis%2Festa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepellis%2Festa/lists"}