{"id":13596862,"url":"https://github.com/eclipse-langium/langium","last_synced_at":"2025-10-20T21:20:28.498Z","repository":{"id":36953440,"uuid":"341208284","full_name":"eclipse-langium/langium","owner":"eclipse-langium","description":"Next-gen language engineering / DSL framework","archived":false,"fork":false,"pushed_at":"2025-04-05T09:10:05.000Z","size":5844,"stargazers_count":795,"open_issues_count":118,"forks_count":77,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-04-06T08:37:58.033Z","etag":null,"topics":["domain-specific-language","dsl","language-engineering","language-server-protocol","typescript","vscode"],"latest_commit_sha":null,"homepage":"https://langium.org/","language":"TypeScript","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/eclipse-langium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2021-02-22T13:23:40.000Z","updated_at":"2025-04-06T00:47:31.000Z","dependencies_parsed_at":"2023-10-01T15:46:02.940Z","dependency_job_id":"1e1e0b4b-39c5-443c-bbb5-f8803366e186","html_url":"https://github.com/eclipse-langium/langium","commit_stats":{"total_commits":795,"total_committers":44,"mean_commits":"18.068181818181817","dds":0.6163522012578616,"last_synced_commit":"21b105164186dfff6a4763c21d450931e2200e5b"},"previous_names":["eclipse-langium/langium","langium/langium"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-langium%2Flangium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-langium%2Flangium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-langium%2Flangium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-langium%2Flangium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-langium","download_url":"https://codeload.github.com/eclipse-langium/langium/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248107349,"owners_count":21048908,"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":["domain-specific-language","dsl","language-engineering","language-server-protocol","typescript","vscode"],"created_at":"2024-08-01T16:02:52.704Z","updated_at":"2025-10-20T21:20:23.460Z","avatar_url":"https://github.com/eclipse-langium.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv id=\"langium-logo\" align=\"center\"\u003e\n  \u003ca href=\"https://github.com/eclipse-langium/langium\"\u003e\n    \u003cimg alt=\"Langium Logo\" width=\"60%\" src=\"https://user-images.githubusercontent.com/4377073/135283991-90ef7724-649d-440a-8720-df13c23bda82.png\"\u003e\n  \u003c/a\u003e\n  \u003ch3\u003e\n    Next-gen language engineering framework\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cdiv id=\"badges\" align=\"center\"\u003e\n\n  [![npm](https://img.shields.io/npm/v/langium)](https://www.npmjs.com/package/langium)\n  [![Build](https://github.com/eclipse-langium/langium/actions/workflows/actions.yml/badge.svg)](https://github.com/eclipse-langium/langium/actions/workflows/actions.yml)\n  [![Gitter Chat](https://img.shields.io/badge/chat-on%20gitter-0DBD8B?logo=gitter)](https://app.gitter.im/#/room/#langium:gitter.im)\n  [![Github Discussions](https://img.shields.io/badge/github-discussions-blue?logo=github)](https://github.com/eclipse-langium/langium/discussions)\n  [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-FFAE33?logo=gitpod)](https://gitpod.io/#https://github.com/eclipse-langium/langium)\n\n\u003c/div\u003e\n\n---\n\nEclipse Langium (IPA: /ˈlæŋɡiəm/, like **lang**uage and equilibr**ium**) is a language engineering tool for [TypeScript](https://www.typescriptlang.org/) with built-in support for the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). The framework is an all-in-one solution for building programming languages, domain specific languages, code generators, interpreters and compilers. It serves as a spiritual successor to the [Eclipse Xtext framework](https://www.eclipse.org/Xtext/).\n\n* **Semantics First:** Building on top of a [grammar declaration language](https://langium.org/docs/reference/grammar-language/), Langium enables you to build the abstract model of your language in parallel to its syntax. Langium parsers are powered by [Chevrotain](https://chevrotain.io).\n* **Lean by Default, Customizable by Design:** Langium offers the infrastructure you need to build languages purely by defining their grammar. If that is not enough, you can fine tune every detail of your language using our [dependency injection system](https://langium.org/docs/reference/configuration-services/).\n* **Write Once, Run Everywhere:** By leveraging the flexibility of JavaScript and the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), a language written using Langium can run in all kinds of IDEs and browsers or be embedded in CLIs and server applications.\n\n## Installation\n\nBuild your first language with Langium in our [online playground](https://langium.org/playground/).\n\nOnce you're ready to set up a project, you can use yeoman to generate a [sample Langium project](https://langium.org/docs/learn/workflow/):\n\n```sh\nnpm i -g yo generator-langium\nyo langium\n```\n\n## Documentation\n\nYou can find the Langium documentation on [the website](https://langium.org/).\n\nIf you're new to building programming languages, take a look at [our overview to see what Langium offers](https://langium.org/docs/features/). \n\nThe documentation is divided into several sections:\n\n* [Learning Langium](https://langium.org/docs/learn/workflow/)\n* [Referece](https://langium.org/docs/reference/)\n* [Recipes](https://langium.org/docs/recipes/)\n* [Playground](https://langium.org/playground/)\n\nThe documentation website is hosted in [this repository](https://github.com/langium/langium-website).\n\n## Examples\n\nWe host a number of simple examples in our [main repo](https://github.com/eclipse-langium/langium/tree/main/examples):\n\n* **[arithmetics](https://github.com/eclipse-langium/langium/tree/main/examples/arithmetics)**: How to create an expression language + interpreter.\n* **[domainmodel](https://github.com/eclipse-langium/langium/tree/main/examples/domainmodel)**: How to create a language with fully qualified name identifiers.\n* **[requirements](https://github.com/eclipse-langium/langium/tree/main/examples/requirements)**: How to create a Langium project with multiple languages.\n* **[statemachine](https://github.com/eclipse-langium/langium/tree/main/examples/statemachine)**: How to create a code generator.\n\nMore complex examples are available as separate repositories in [our GitHub organization](https://github.com/langium):\n\n* **[lox](https://github.com/langium/langium-lox)**: Implementation of the Lox language from the popular book [Crafting Interpreters](https://craftinginterpreters.com/the-lox-language.html).\n* **[minilogo](https://github.com/langium/langium-minilogo)**: Implementation of a [logo](https://el.media.mit.edu/logo-foundation/what_is_logo/logo_programming.html) language dialect. Shows how to integrate Langium in the browser.\n\n## Contributing\n\nIf you want to contribute to Langium, please take a look at [our contributing guide](https://github.com/eclipse-langium/langium/blob/main/CONTRIBUTING.md).\n\nLangium is fully [MIT licensed](https://github.com/eclipse-langium/langium/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-langium%2Flangium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-langium%2Flangium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-langium%2Flangium/lists"}