{"id":13494663,"url":"https://github.com/bevuta/clojure-nix-locker","last_synced_at":"2026-01-22T19:13:36.652Z","repository":{"id":38827650,"uuid":"481013500","full_name":"bevuta/clojure-nix-locker","owner":"bevuta","description":"Simple and flexible tool to build clojure projects with Nix","archived":false,"fork":false,"pushed_at":"2025-07-01T10:59:20.000Z","size":73,"stargazers_count":23,"open_issues_count":2,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-22T05:48:42.994Z","etag":null,"topics":["clojure","lockfile","nix"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bevuta.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":"2022-04-13T00:14:30.000Z","updated_at":"2025-07-01T10:59:24.000Z","dependencies_parsed_at":"2024-04-10T17:57:44.534Z","dependency_job_id":"12be1dde-ec6c-44ef-b17c-9713f364d898","html_url":"https://github.com/bevuta/clojure-nix-locker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bevuta/clojure-nix-locker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevuta%2Fclojure-nix-locker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevuta%2Fclojure-nix-locker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevuta%2Fclojure-nix-locker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevuta%2Fclojure-nix-locker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bevuta","download_url":"https://codeload.github.com/bevuta/clojure-nix-locker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevuta%2Fclojure-nix-locker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28669089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","lockfile","nix"],"created_at":"2024-07-31T19:01:26.983Z","updated_at":"2026-01-22T19:13:36.633Z","avatar_url":"https://github.com/bevuta.png","language":"Nix","funding_links":[],"categories":["Nix"],"sub_categories":[],"readme":"# clojure-nix-locker\n\nSimple and flexible tool to build clojure projects with Nix.\n\n## Usage\n\nThe [example/](example) directory has a small clojure program and the nix code required to build it.\n\n### Stable non-flake way\n\nTo generate/update the lockfile:\n```sh\nnix-shell --run clojure-nix-locker\n```\n\nTo build:\n```sh\nnix-build -A uberjar\n```\n\n### With flakes\n\nYou can generate a flake example with:\n\n```sh\nmkdir play-with-clojure-nix-locker \u0026\u0026 cd play-with-clojure-nix-locker \u0026\u0026 nix flake init -t github:bevuta/clojure-nix-locker\n```\n\nThe [example README](example/README.md) has some next steps.\n\n## Why another tool?\n\nThere are two existing projects with a similar goal already, [clj2nix](https://github.com/hlolli/clj2nix) and [clj-nix](https://github.com/jlesquembre/clj-nix).\nBoth of these are designed to be used roughly like this:\n\n- At lock-time, call into `clojure.tools.deps` to resolve all dependencies, then generate a lockfile from this.\n- At nix-eval-time, use the information from the lockfile to compute the classpath.\n- At build-time, invoke clojure and pass it the precomputed classpath.\n\nBy contrast, `clojure-nix-locker` is designed around letting classpath computation happen later, at build-time.\nIt works roughly like this:\n\n- At lock-time, call arbitrary user-provided commands (like `clojure -P`) to pre-populate the caches in `.m2` and `.gitlibs`, then crawl those to generate the lockfile.\n- At nix-eval-time, use the information from the lockfile to recreate these caches in a way that's \"close enough\" to the real thing.\n- At build-time, invoke clojure as normal. If the prefetching was done correctly, it will resolve its dependencies just fine without hitting the network.\n\nThis approach results in a pretty simple implementation and loose coupling to the clojure tooling.\nAs a consequence, things like aliases \"just work\" without requiring `clojure-nix-locker` to know about them.\n\nOf course, this has its downsides too:\n\n- If the directory layout of these caches changes, this tool breaks.\n- Whatever classpath(s) your clojure tools compute at build-time will only work for the duration of that build.\n\n## License\n\nDistributed under the GNU General Public License, Version 3. See `LICENSE` for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevuta%2Fclojure-nix-locker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbevuta%2Fclojure-nix-locker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevuta%2Fclojure-nix-locker/lists"}