{"id":20392544,"url":"https://github.com/aripiprazole/lura","last_synced_at":"2025-07-12T12:09:16.277Z","repository":{"id":182701096,"uuid":"667932648","full_name":"aripiprazole/lura","owner":"aripiprazole","description":"🍞 | IDE focused programming language study","archived":false,"fork":false,"pushed_at":"2024-03-04T21:53:33.000Z","size":1331,"stargazers_count":34,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T09:42:14.791Z","etag":null,"topics":["crate","lsp","programming-language","rust","type-theory"],"latest_commit_sha":null,"homepage":"https://lura.gabx.io","language":"C","has_issues":true,"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/aripiprazole.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,"zenodo":null},"funding":{"github":"aripiprazole"}},"created_at":"2023-07-18T16:16:03.000Z","updated_at":"2025-02-24T18:03:38.000Z","dependencies_parsed_at":"2023-07-21T03:22:21.232Z","dependency_job_id":"dea125d9-8eff-46ef-8e4b-5397218db06f","html_url":"https://github.com/aripiprazole/lura","commit_stats":null,"previous_names":["aripiprazole/lura"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aripiprazole/lura","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Flura","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Flura/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Flura/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Flura/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aripiprazole","download_url":"https://codeload.github.com/aripiprazole/lura/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Flura/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264987457,"owners_count":23693833,"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":["crate","lsp","programming-language","rust","type-theory"],"created_at":"2024-11-15T03:44:20.350Z","updated_at":"2025-07-12T12:09:16.257Z","avatar_url":"https://github.com/aripiprazole.png","language":"C","funding_links":["https://github.com/sponsors/aripiprazole"],"categories":[],"sub_categories":[],"readme":"## Lura\n\nIncremental/single-pass based compiler, the API can be either used for Single-Pass Compiling and for building LSP, or\nthings that would need incremental pipelines. It's a study project of mine for studying incremental compilers and\npackage-managers.\n\nThe project is still being developed, and the table of contents is:\n\n- [Garbage Collection](#garbage-collection)\n- [License](#license)\n\nThe objective of this project is:\n\n- Dealing with language-servers, and direct support for [Visual Studio Code](https://code.visualstudio.com/)\n- Having a full-featured CLI for building, and packaging libraries for Lura\n- Lowering to [LLVM-IR](https://llvm.org/), and executing JIT\n- Error-resistant compiler, like having a compile-time error, and still can compile, because the error fall onto the\n  runtime\n- Interpreter for basic things like macro-expanding.\n- Query-based architecture.\n\nIt's all based on the works:\n\n- [Resilient parsing](https://matklad.github.io/2023/05/21/resilient-ll-parsing-tutorial.html)\n- [Typing Haskell in Haskell](http://web.cecs.pdx.edu/~mpj/thih/thih.pdf)\n- [Sixty](https://github.com/ollef/sixty)\n- [Query-based compiler architecture](https://ollef.github.io/blog/posts/query-based-compilers.html)\n- [Rust](https://github.com/rust-lang/rust)\n- [Crafting Interpreters](https://craftinginterpreters.com)\n- [Semantic](https://github.com/github/semantic)\n- [Data types à la carte](https://www.cambridge.org/core/journals/journal-of-functional-programming/article/data-types-a-la-carte/14416CB20C4637164EA9F77097909409)\n- [Salsa](https://salsa-rs.github.io/salsa)\n- [OutsideIn(X)](https://citeseerx.ist.psu.edu/document?repid=rep1\u0026type=pdf\u0026doi=6c214019a649c52341d92bd73140de7ad0c292f0)\n- [How to implement dependent types in 80 lines of code](https://gist.github.com/Hirrolot/27e6b02a051df333811a23b97c375196)\n- [Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism](https://www.cl.cam.ac.uk/~nk480/bidir.pdf)\n- [Bidirectional typechecking for higher-rank polymorphism](https://gist.github.com/mb64/87ac275c327ea923a8d587df7863d8c7#file-tychk_v2-ml)\n- [Practical type inference for arbitrary-rank types](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/putting.pdf)\n\nAnd have some great inspirations in [rust-analyzer](https://github.com/rust-lang/rust-analyzer) code-base..\n\n### Running\n\nClone the repository with `git submodule update --recursive --remote`\n\n### Garbage-Collection\n\nThe goal of this compiler isn't optimizing things, it's more like an IDE, so the garbage collector is based on Reference\nCounting.\n\n### License\n\nLura is distributed under the terms of the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faripiprazole%2Flura","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faripiprazole%2Flura","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faripiprazole%2Flura/lists"}