{"id":13568241,"url":"https://github.com/jank-lang/jank","last_synced_at":"2025-05-14T04:07:38.125Z","repository":{"id":18267544,"uuid":"21428070","full_name":"jank-lang/jank","owner":"jank-lang","description":"The native Clojure dialect hosted on LLVM with seamless C++ interop.","archived":false,"fork":false,"pushed_at":"2025-05-13T19:00:01.000Z","size":7398,"stargazers_count":2524,"open_issues_count":69,"forks_count":87,"subscribers_count":45,"default_branch":"main","last_synced_at":"2025-05-13T20:20:23.554Z","etag":null,"topics":["clojure","compiler","cpp","functional-programming","jit","language","lisp","llvm","native","programming-language"],"latest_commit_sha":null,"homepage":"https://jank-lang.org","language":"C++","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/jank-lang.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"jeaye","patreon":null,"open_collective":"jank","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2014-07-02T14:48:41.000Z","updated_at":"2025-05-13T14:24:07.000Z","dependencies_parsed_at":"2024-01-06T11:20:59.929Z","dependency_job_id":"bd81be52-f0ba-4540-b1a2-e3bf2ad63049","html_url":"https://github.com/jank-lang/jank","commit_stats":{"total_commits":3349,"total_committers":8,"mean_commits":418.625,"dds":0.01970737533592115,"last_synced_commit":"e774da6e3d029c884caefa5c27922b25713b24f7"},"previous_names":["jeaye/jank"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jank-lang%2Fjank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jank-lang%2Fjank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jank-lang%2Fjank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jank-lang%2Fjank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jank-lang","download_url":"https://codeload.github.com/jank-lang/jank/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069219,"owners_count":22009512,"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":["clojure","compiler","cpp","functional-programming","jit","language","lisp","llvm","native","programming-language"],"created_at":"2024-08-01T14:00:22.087Z","updated_at":"2025-05-14T04:07:38.104Z","avatar_url":"https://github.com/jank-lang.png","language":"C++","readme":"\u003ca href=\"https://jank-lang.org\"\u003e\n  \u003cimg src=\"https://media.githubusercontent.com/media/jank-lang/jank/main/.github/img/banner.png\" alt=\"jank banner\" /\u003e\n\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://clojurians.slack.com/archives/C03SRH97FDK\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/slack-%23jank-e01563.svg?style=flat\u0026logo=slack\u0026logoColor=fd893f\u0026colorA=363636\u0026colorB=363636\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sponsors/jeaye\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/sponsors/jeaye?style=flat\u0026logo=github\u0026logoColor=fd893f\u0026colorA=363636\u0026colorB=363636\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://twitter.com/jeayewilkerson\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/jeayewilkerson?style=flat\u0026logo=x\u0026logoColor=fd893f\u0026colorA=363636\u0026colorB=363636\" /\u003e\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://github.com/jank-lang/jank/actions\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/jank-lang/jank/build.yml?branch=main\u0026style=flat\u0026logo=github\u0026logoColor=fd893f\u0026colorA=363636\u0026colorB=363636\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/jank-lang/jank\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/jank-lang/jank?style=flat\u0026logo=codecov\u0026logoColor=fd893f\u0026colorA=363636\u0026colorB=363636\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n# What is jank?\n\nMost simply, jank is a [Clojure](https://clojure.org/) dialect on LLVM with C++ interop.\nLess simply, jank is a general-purpose programming language which embraces the interactive,\nfunctional, value-oriented nature of Clojure and the desire for the native\nruntime and performance of C++. jank aims to be strongly compatible with\nClojure. While Clojure's default host is the JVM and its interop is with Java,\njank's host is LLVM and its interop is with C++.\n\nFor the current progress of jank and its usability, see the tables here: https://jank-lang.org/progress/\n\nThe current tl;dr for jank's usability is: **still getting there, but not ready for\nuse yet. Check back in a few months!**\n\n## Docs\n* [Installing jank](./compiler+runtime/doc/install.md)\n* [Building jank](./compiler+runtime/doc/build.md)\n* [Using jank with Leiningen](./lein-jank/README.md)\n* [Using jank with Clojure CLI](./clojure-cli/README.md)\n\n## Appetizer\n```clojure\n; Comments begin with a ;\n(println \"meow\") ; =\u003e nil\n\n; All built-in data structures are persistent and immutable.\n(def george {:name \"George Clooney\"}) ; =\u003e #'user/george\n\n; Though all data is immutable by default, side effects are adhoc.\n(defn say-hi [who]\n  (println (str \"Hi \" (:name who) \"!\"))\n  (assoc who :greeted? true))\n\n; Doesn't change george.\n(say-hi george) ; =\u003e {:name \"George Clooney\"\n                ;     :greeted? true}\n\n; Many core functions for working with immutable data.\n(apply + (distinct [12 8 12 16 8 6])) ; =\u003e 42\n\n; Interop with C++ can happen *seamlessly*.\n(defn sleep [ms]\n  (let [duration (c++/std.chrono.milliseconds ms)]\n    (c++/std.this_thread.sleep_for duration)))\n```\n\n## Sponsors\nIf you'd like your name, company, or logo here, you can\n[sponsor this project](https://github.com/sponsors/jeaye) for at least $25/m.\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.clojuriststogether.org/\"\u003e\n    \u003cimg src=\"https://www.clojuriststogether.org/header-logo.svg\" height=\"100px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- mkarp --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pitch.com/\"\u003e\n    Misha Karpenko\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- stijlist --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://www.somethingdoneright.net/about\"\u003e\n    Bert Muthalaly\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- modulr-software --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/modulr-software\"\u003e\n    modulr-software\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- multiplyco --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://multiply.co/\"\u003e\n    multiply.co\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- keychera --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://keychera.github.io/\"\u003e\n    keychera\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## In the news\n\u003cdiv align=\"center\"\u003e\n\n| [\u003cimg src=\"https://i0.wp.com/2023.clojure-conj.org/wp-content/uploads/2019/06/clojure.png?resize=150%2C150\u0026ssl=1\" height=\"100px\"\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eClojure Conj 2023\u003c/b\u003e\u003c/sub\u003e](https://www.youtube.com/watch?v=Yw4IAY4Nx_o)\u003cbr /\u003e        | [\u003cimg src=\"https://user-images.githubusercontent.com/1057635/193151333-449385c2-9ddb-468e-b715-f149d173e310.svg\" height=\"100px\"\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eThe REPL Interview\u003c/b\u003e\u003c/sub\u003e](https://www.therepl.net/episodes/44/)\u003cbr /\u003e |  [\u003cimg src=\"https://github.com/jank-lang/jank/assets/1057635/72ff097c-578c-46f8-a727-aae6dcf2a82f\" width=\"100px\"\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLanguage Introduction\u003c/b\u003e\u003c/sub\u003e](https://youtu.be/ncYlHfK25i0)\u003cbr /\u003e          | [\u003cimg src=\"https://github.com/jank-lang/jank/assets/1057635/9788a7c8-93da-47ea-8d1d-8a258a747942\" width=\"100px\"\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCompiler Spotlight\u003c/b\u003e\u003c/sub\u003e](https://compilerspotlight.substack.com/p/language-showcase-jank)\u003cbr /\u003e |\n| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-: | :-: |\n\n\u003c/div\u003e\n","funding_links":["https://github.com/sponsors/jeaye","https://opencollective.com/jank"],"categories":["C++","Uncategorized","Clojure-likes"],"sub_categories":["Uncategorized","[jank](https://jank-lang.org/)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjank-lang%2Fjank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjank-lang%2Fjank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjank-lang%2Fjank/lists"}