{"id":19443986,"url":"https://github.com/franckrasolo/archunit-to-konsist","last_synced_at":"2026-06-13T02:07:11.532Z","repository":{"id":258231300,"uuid":"859445276","full_name":"franckrasolo/archunit-to-konsist","owner":"franckrasolo","description":"A comparison of ArchUnit and Konsist for implementing software architecture rules.","archived":false,"fork":false,"pushed_at":"2026-05-02T07:41:25.000Z","size":409,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2026-05-02T09:34:38.456Z","etag":null,"topics":["architectural-patterns","architecture-rules","archunit","archunit-junit5","comparison","hexagonal-architecture","konsist","kotlin","ports-and-adapters"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/franckrasolo.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-18T17:11:23.000Z","updated_at":"2026-05-02T07:41:29.000Z","dependencies_parsed_at":"2024-11-02T04:20:18.151Z","dependency_job_id":"278a2021-bff4-43e6-8003-9be3f331d17c","html_url":"https://github.com/franckrasolo/archunit-to-konsist","commit_stats":null,"previous_names":["franckrasolo/archunit-to-konsist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/franckrasolo/archunit-to-konsist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckrasolo%2Farchunit-to-konsist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckrasolo%2Farchunit-to-konsist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckrasolo%2Farchunit-to-konsist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckrasolo%2Farchunit-to-konsist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franckrasolo","download_url":"https://codeload.github.com/franckrasolo/archunit-to-konsist/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckrasolo%2Farchunit-to-konsist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34269381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["architectural-patterns","architecture-rules","archunit","archunit-junit5","comparison","hexagonal-architecture","konsist","kotlin","ports-and-adapters"],"created_at":"2024-11-10T15:45:49.569Z","updated_at":"2026-06-13T02:07:11.526Z","avatar_url":"https://github.com/franckrasolo.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Architecture Rules in Kotlin: from ArchUnit to Konsist\n\n[![Kotlin](https://img.shields.io/badge/Kotlin-2.3.21-blue.svg?logo=kotlin\u0026style=flat\u0026labelColor=30373d)](https://github.com/JetBrains/kotlin/releases/tag/v2.3.21)\n[![Gradle](https://img.shields.io/badge/Gradle-9.5.0-blue.svg?logo=gradle\u0026logoColor=3cb5c2\u0026style=flat\u0026labelColor=30373d)](https://docs.gradle.org/9.5.0/release-notes.html)\n[![ArchUnit](https://img.shields.io/badge/ArchUnit-1.4.2-blue.svg?logo=apachemaven\u0026logoColor=d84531\u0026style=flat\u0026labelColor=30373d)](https://mvnrepository.com/artifact/com.tngtech.archunit/archunit/1.4.2)\n[![Konsist](https://img.shields.io/badge/Konsist-0.17.3-blue.svg?logo=apachemaven\u0026logoColor=d84531\u0026style=flat\u0026labelColor=30373d)](https://mvnrepository.com/artifact/com.lemonappdev/konsist/0.17.3)\n[![MIT](https://img.shields.io/badge/License-MIT-blue.svg?logo=spdx\u0026style=flat\u0026labelColor=30373d)](https://github.com/franckrasolo/archunit-to-konsist/blob/trunk/LICENSE)\n\nA super simple Kotlin / Gradle project used for a side-by-side comparison of\n[ArchUnit](https://www.archunit.org/about) and [Konsist](https://docs.konsist.lemonappdev.com/)\nwhen implementing rules of the _Ports \u0026 Adapters_ architectural pattern.\n\n## Documentation\n\n### ArchUnit\n\n- [Why test your architecture?](https://www.archunit.org/motivation)\n- [User Guide](https://www.archunit.org/userguide/html/000_Index.html)\n- [Architectures](https://www.archunit.org/userguide/html/000_Index.html#_architectures)\n\n### Konsist\n\n- [Architecture Assertion](https://docs.konsist.lemonappdev.com/writing-tests/architecture-assert)\n- [Architecture Snippets](https://docs.konsist.lemonappdev.com/inspiration/snippets/architecture-snippets)\n- [Clean Architecture Snippets](https://docs.konsist.lemonappdev.com/inspiration/snippets/clean-architecture-snippets)\n\n## Additional Resources\n\n- Design Accelerator: Ports and Adapters Architecture,\n  [Part 1](https://youtu.be/TC4e0hokDB8) | [Part 2](https://youtu.be/V4nj8MXUv5k) |\n  [Part 3](https://youtu.be/UpesTQhQhTE) – Vaughn Vernon\n- [What's Hexagonal Architecture?](https://medium.com/@luishrsoares/whats-hexagonal-architecture-6da22d4ab600)\n  _Separating Business Logic From Infrastructure With Ports and Adapters_\n- [Hexagonal Architecture Explained](https://www.arhohuttunen.com/hexagonal-architecture/)\n\n[![Medium](https://img.shields.io/badge/Medium-1A1A1A.svg?style=for-the-adge\u0026logo=Medium\u0026logoColor=white)](#additional-resources)\n\n- [ArchUnit vs. Konsist. Why Did We Need Another Kotlin \"Linter\"? – Igor Wojda](https://proandroiddev.com/archunit-vs-konsist-why-did-we-need-another-linter-972c4ff2622d)\n- [ArchUnit vs Konsist in Android (Kotlin-oriented) codebase. A comparison of hidden implementation checks. – Bartek Twaróg](https://medium.com/the-house-of-code/archunit-vs-konsist-in-android-kotlin-oriented-codebase-b72c6c698b0b)\n- [Protect Kotlin Project Architecture Using Konsist – Igor Wojda](https://proandroiddev.com/protect-kotlin-project-architecture-using-konsist-3bfbe1ad0eea)\n- [Stop Debating in Code Reviews. Start Enforcing with Lint Rules – Stelios Frantzeskakis](https://proandroiddev.com/stop-debating-in-code-reviews-start-enforcing-with-lint-rules-6632c907ea94)\n\n[![YouTube](https://img.shields.io/badge/YouTube-FF0000.svg?style=for-the-badge\u0026logo=YouTube\u0026logoColor=white)](#additional-resources)\n\n- [A Tour Through Konsist with Igor Wojda – Dave Leeds](https://youtu.be/AlYTvzwZOc4)\n- [Harmonizing Kotlin codebases with Konsist – Natalia Peterwas, Igor Wojda at KotlinConf 2024](https://youtu.be/3qbKYSI1u1k)\n- [Maintain consistency in your Kotlin Codebase with Konsist! – Charfaoui Younes](https://youtu.be/WrGuZ9fgWBg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckrasolo%2Farchunit-to-konsist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranckrasolo%2Farchunit-to-konsist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckrasolo%2Farchunit-to-konsist/lists"}