{"id":21663924,"url":"https://github.com/leviysoft/hjk","last_synced_at":"2026-05-08T08:32:54.565Z","repository":{"id":263656808,"uuid":"891082670","full_name":"leviysoft/hjk","owner":"leviysoft","description":"Build tool for those who doesn't need build tool","archived":false,"fork":false,"pushed_at":"2025-08-02T17:19:46.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T19:35:21.258Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leviysoft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-11-19T17:38:15.000Z","updated_at":"2025-08-02T17:19:49.000Z","dependencies_parsed_at":"2024-11-19T18:51:08.743Z","dependency_job_id":"0490e422-3bc8-4dda-b147-c74cdc616e42","html_url":"https://github.com/leviysoft/hjk","commit_stats":null,"previous_names":["leviysoft/hjk"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/leviysoft/hjk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviysoft%2Fhjk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviysoft%2Fhjk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviysoft%2Fhjk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviysoft%2Fhjk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leviysoft","download_url":"https://codeload.github.com/leviysoft/hjk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviysoft%2Fhjk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32773013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"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":[],"created_at":"2024-11-25T10:29:28.088Z","updated_at":"2026-05-08T08:32:54.546Z","avatar_url":"https://github.com/leviysoft.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hjk\n\n**hjk** is a simple yet flexible build tool for Scala and virtually any other language.\n\nhjk is designed with the following principles in mind:\n\n* **Nothing is hardcoded** - everything in hjk is configuration, built-in tasks are just statically served templates (we call them blueprints)\n* **Nothing is special** - every single bit of configuration can be overridden by the user, hjk is not opinionated about anything\n* **Extensibility gives the power** - hjk is designed to be extensible, you can add support for any reasonable tool with a few lines\n\nTechnically hjk is not a build tool, it's a, let's say, configurable launcher. For example, it leverages [Coursier](https://get-coursier.io/docs/cli-installation)\nfor resolving dependencies and running Scala compiler, but has no hardcoded knowledge about Scala or any other language.\n\nhjk uses [Dhall](https://dhall-lang.org/) for configuration, which is a powerful typed configuration language.\n\n## Installation\n\n### Prerequisites\n\nFor building Scala (or other JVM languages) you need to install [Coursier](https://get-coursier.io/docs/cli-installation).\nOnly the `cs` command is needed, `scala`, `scalac`, etc. are not required for installation.\n\n### Getting hjk\n\nYou can download a precompiled hjk binary from the [releases page](https://github.com/leviysoft/hjk/releases).\n\nIf you want to build hjk from sources, you need to install [Stack](https://docs.haskellstack.org/en/stable/README/).\nWhen you have stack installed, you can install hjk with `stack install`.\n\n### Dhall support in your editor\n\nSince hjk uses Dhall for configuration, it might be a good idea to have Dhall support in your editor.\n\nFor VSCode there is a [Dhall LSP Server](https://marketplace.visualstudio.com/items?itemName=dhall.vscode-dhall-lsp-server) extension.\n(you will need to install [dhall-lsp-server](https://github.com/dhall-lang/dhall-haskell/tree/main/dhall-lsp-server) to get it working).\n\nFor IntelliJ there is a [Dhall plugin](https://plugins.jetbrains.com/plugin/13889-dhall).\n\n## Usage\n\nYou can find an example project using hjk [here](https://github.com/leviysoft/hjk-sample-project).\n\n## Q\u0026A\n\n**Q: Why write build tool for Scala in Haskell?**\n\n**A:** Dhall was chosen as configuration language because of it's features and out-of-the-box editor support, and Dhall is initially written in Haskell.\nYou don't have to know Haskell to use hjk, even for extending built-in tasks or writing your own.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleviysoft%2Fhjk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleviysoft%2Fhjk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleviysoft%2Fhjk/lists"}