{"adoption": {"forks": 102, "observed_at": "2026-09-03T02:15:11.509659+00:00", "stars": 1031}, "canonical_url": "https://ross.abutalabs.com/products/langium", "card": {"archived": false, "artifact_type": "framework", "description": "Next-gen language engineering / DSL framework", "domain": ["programming-languages", "parsers", "developer-tools", "compilers"], "enriched": true, "function": ["parser", "compiler", "interpreter", "developer-tools", "sdk"], "health_score": 99, "homepage": "https://langium.org/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["eclipse-langium/langium"], "name": "eclipse-langium/langium", "platform": ["cross-platform", "browser"], "pushed_at": "2026-09-02T17:32:49+00:00", "repo": "eclipse-langium/langium", "stars": 1031, "tags": ["language-engineering", "language-server-protocol", "dsl", "grammar-language", "chevrotain", "xtext-successor", "vscode-extension", "code-generation", "low-code", "nodejs", "typescript", "vscode"], "topics": ["language-engineering", "language-server-protocol", "vscode", "typescript", "domain-specific-language", "dsl"], "urls": [], "use_cases": ["create a domain-specific language for my project", "build a custom programming language in TypeScript", "add language server support for my DSL in VS Code", "write a code generator for a custom config language", "build a low-code platform with its own language", "implement an interpreter or validator for a DSL", "run my language tooling in the browser"], "what_it_is": "Eclipse Langium is a TypeScript framework for building programming languages and domain-specific languages with built-in Language Server Protocol support. It generates typed ASTs from a grammar declaration language and lets languages run in VS Code, browsers, CLIs, and servers.", "when_to_avoid": ["you need JVM-based language tooling or Xtext's existing ecosystem", "you only need a simple parser without IDE features - a parser library like Chevrotain alone may suffice", "your tooling must be written in a language other than TypeScript/JavaScript"], "when_to_choose": ["you want to build a DSL or programming language on the TypeScript/Node.js stack", "you need LSP-based IDE support (VS Code, Theia) with minimal effort", "you want a modern successor to Xtext in the web ecosystem", "you need your language tooling to run in browsers, CLIs, or servers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/langium", "repo": "eclipse-langium/langium", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.509659+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:44.909726+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c0bf406eba7bdfd5c9181ca6e4f5f0af516d29afa857020ad99f0463186e2b9", "fetched_at": "2026-09-03T02:15:11.509659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eclipse-langium/langium"}, {"content_hash": "42fc05c87ab5fc409814270b915c0ab989e8f1569233a0c924216c4426e1b691", "fetched_at": "2026-08-29T13:07:36.430583+00:00", "kind": "homepage", "missing": false, "url": "https://langium.org/"}, {"content_hash": "d0582bed8b8e11eaee50e0141b242f1c90d1c119c7f6c39bdadaa4e1289d2198", "fetched_at": "2026-08-29T13:07:36.440391+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs"}, {"content_hash": "20b336d43bb473aeeafc89adbfd7545cb819cb993f9f70a1fe1878e0fed0af94", "fetched_at": "2026-08-29T13:07:36.442888+00:00", "kind": "site_page", "missing": false, "url": "https://langium.org/docs/learn/workflow"}, {"content_hash": "10ada12e4a5161cab68b77b62db8ea2183818b07f9223763b36cf64aa0c7421f", "fetched_at": "2026-08-29T13:07:36.445046+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/langium"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 79}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2018, "days_push": 0, "days_rel": 62, "gap_med": 73, "n_releases_24m": 10}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}