{"id":16711499,"url":"https://github.com/j-jzk/klang","last_synced_at":"2025-04-10T05:36:21.146Z","repository":{"id":40321710,"uuid":"437585942","full_name":"j-jzk/klang","owner":"j-jzk","description":"A toolkit for defining programming languages and DSLs in Kotlin","archived":false,"fork":false,"pushed_at":"2023-12-19T14:02:19.000Z","size":507,"stargazers_count":4,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T06:54:34.668Z","etag":null,"topics":["compiler","dsl","kotlin","parser","programming-language"],"latest_commit_sha":null,"homepage":"https://j-jzk.cz/en/projects/klang","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/j-jzk.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":"2021-12-12T15:41:36.000Z","updated_at":"2024-03-19T20:36:57.000Z","dependencies_parsed_at":"2023-02-13T19:31:14.337Z","dependency_job_id":"e3a1de8d-3dc1-4388-a6a0-641ac1d24d42","html_url":"https://github.com/j-jzk/klang","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j-jzk%2Fklang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j-jzk%2Fklang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j-jzk%2Fklang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j-jzk%2Fklang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j-jzk","download_url":"https://codeload.github.com/j-jzk/klang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248164365,"owners_count":21058130,"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":["compiler","dsl","kotlin","parser","programming-language"],"created_at":"2024-10-12T20:12:12.578Z","updated_at":"2025-04-10T05:36:21.125Z","avatar_url":"https://github.com/j-jzk.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\t\u003cimg src=\"logo.png\" alt=\"klang\"\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ci\u003eA toolkit for defining programming languages and DSLs in Kotlin.\u003c/i\u003e\n\u003c/p\u003e\n\n## About\nEven though programming languages are constantly evolving to provide new ways of\nexpressing program code, tools for writing compilers seldom make use of these\nfeatures, instead mimicking the interface of the old tools _lex_ and _yacc_.\n\n_klang_ uses a completely new approach. Instead of defining the syntax of your\nlanguage in a separate file, you can simply do everything in your regular\nKotlin code.\n\nThis library revolutionizes the way you build software. Creating a DSL is\nas easy as including klang and writing a few lines of code.\n\n## Building\nBecause the library is still in early development, there are no artifacts in\npublic repositories.\n\nTo build, you will first need to install the component [klang-re](https://github.com/j-jzk/klang-re):\n\n```sh\n$ git clone https://github.com/j-jzk/klang-re.git\n$ cd klang-re\n$ ./mvnw install  # saves klang-re.jar into the local Maven cache\n```\n\nThen you can build this library:\n```sh\n$ git clone https://github.com/j-jzk/klang.git\n$ cd klang\n$ ./gradlew build\n```\n\nThe resulting JAR will be in klang/build/libs/klang-`\u003cversion\u003e`.jar.\n\n## License\nLicensed under the Mozilla Public License 2.0 (see _LICENSE_)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-jzk%2Fklang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj-jzk%2Fklang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-jzk%2Fklang/lists"}