{"id":13617951,"url":"https://github.com/archguard/archguard","last_synced_at":"2026-01-11T17:01:21.971Z","repository":{"id":37307702,"uuid":"460910110","full_name":"archguard/archguard","owner":"archguard","description":"ArchGuard is a architecture workbench, also for architecture governance, which can analysis architecture in container, component, code level, create architecure fitness functions, and anaysis system dependencies..","archived":false,"fork":false,"pushed_at":"2025-02-19T11:44:19.000Z","size":19860,"stargazers_count":636,"open_issues_count":5,"forks_count":107,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-14T06:44:48.448Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://archguard.org/","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/archguard.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":"2022-02-18T15:43:10.000Z","updated_at":"2025-04-08T12:14:55.000Z","dependencies_parsed_at":"2024-01-18T04:09:26.784Z","dependency_job_id":"8b3f8a00-a8f3-4bad-9cc8-ce6d941e4bbf","html_url":"https://github.com/archguard/archguard","commit_stats":null,"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/archguard/archguard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archguard%2Farchguard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archguard%2Farchguard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archguard%2Farchguard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archguard%2Farchguard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/archguard","download_url":"https://codeload.github.com/archguard/archguard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archguard%2Farchguard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28314254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: 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-08-01T20:01:51.368Z","updated_at":"2026-01-11T17:01:21.721Z","avatar_url":"https://github.com/archguard.png","language":"Kotlin","funding_links":[],"categories":["Kotlin","微服务治理"],"sub_categories":[],"readme":"# ArchGuard backend\n\n[![CI](https://github.com/archguard/archguard/actions/workflows/ci.yaml/badge.svg)](https://github.com/archguard/archguard/actions/workflows/ci.yaml)\n[![codecov](https://codecov.io/gh/archguard/archguard/branch/master/graph/badge.svg?token=QS5H866CWH)](https://codecov.io/gh/archguard/archguard)\n[![GitHub release](https://img.shields.io/github/v/release/archguard/archguard?logo=git\u0026logoColor=white)](https://github.com/archguard/archguard/releases)\n[![languages](https://img.shields.io/badge/language-kotlin-blueviolet?logo=kotlin\u0026logoColor=white)](https://www.kotlincn.net/)\n[![Java support](https://img.shields.io/badge/Java-12+-green?logo=java\u0026logoColor=white)](https://openjdk.java.net/)\n![Maven Central](https://img.shields.io/maven-central/v/org.archguard.scanner/scanner_core)\n![Docker Image Version](https://img.shields.io/docker/v/archguard/archguard-backend?sort=semver\u0026style=flat\u0026label=DockerHub%20Version\u0026link=https%3A%2F%2Fhub.docker.com%2Fr%2Farchguard%2Farchguard-backend%2Ftags)\n\n\u003e ArchGuard is an architecture governance tool that can analysis architecture in container, component, code level, database, create architecture fitness functions, and test for architecture rules. \n\nChinese: ArchGuard 是一个针对于微服务（分布式场景）下的架构工作台/治理工具。它可以帮助架构师、开发人员进行架构自助，自定义架构的洞察、\n分析系统间的远程服务依赖情况、数据库依赖、API 依赖等。并根据一些架构治理模型，对现有系统提出改进建议。\n\n- Document: [https://archguard.org/](https://archguard.org/)\n- Roadmap: [Roadmap](https://github.com/archguard/archguard/discussions/5)\n- Contribute: [Contribute to Archguard](https://archguard.org/contribution)\n- SubProjects:\n    - [ArchGuard Frontend](https://github.com/archguard/archguard-frontend)\n    - [Chapi](https://github.com/modernizing/chapi) source code analysis\n    - [ArchGuard Co-mate](https://github.com/unit-mesh/co-mate) an AI-powered architecture copilot, design and governance tools.\n- Architecture:\n\n![Architecture](https://archguard.org/architecture.svg)\n\nYou can use:\n\n- [ArchGuard Library in Maven Central](https://search.maven.org/search?q=org.archguard) to integrate with your backend.\n- [ArchGuard Scanner CLI](./scanner_cli) to scan your codebase, upload to your backend or ArchGuard backend.\n- [ArchGuard Gradle Plugin](https://github.com/archguard/archguard-gradle-plugin) to scan your codebase in CI/CD.\n- [ArchGuard Web](./server) is the backend of ArchGuard, it provides a RESTful API for frontend.\n\n特性（Features）：\n\n- **设计态**\n  - 架构设计、分析与治理 DSL\n  - Feakin: [https://github.com/feakin/fklang](https://github.com/feakin/fklang)\n- **开发态**\n  - 架构扫描\n    - 扫描配置\n    - 插件化规则定制\n    - 规则化治理：Code Smell, Test Code Smell, SQL Smell, API Smell, Documentation Smell, etc.\n  - 架构可视化\n    - 基于 C4 模型的可视化分析\n      - 上下文：API 服务地图（API 生产者支持语言：Java、Kotlin、C#，API 消费者支持语言：TypeScript/JavaScript、Kotlin、Java 等）\n      - 容器分析。数据库地图（支持 MyBatis、JDBI、JPA）\n      - 组件分析\n      - 代码分析：支持级别模块、包、类、方法四个级别。\n    - 高级分析 + 可视化\n      - 系统不稳定性模块分析。\n      - 容器间：精准测试/变化分析\n  - 架构指标（单体DONE，分布式DOING）\n    - 体量维度：过大的组件\n    - 耦合维度：枢纽组件，过深调用，循环依赖\n    - 内聚维度：霰弹式修改\n    - 冗余维度：冗余元素，过度泛化\n    - 质量维度：测试保护\n  - 代码分析\n    - CLOCO：代码复杂度 [#79](https://github.com/archguard/archguard/issues/79)\n    - SCA 分析\n    - OpenAPI 分析\n    - Architecture analysis\n- **运行态**\n  - APM（TODO）\n- **架构工作台**\n\nFeatures：\n\n- **Design State**\n  - Architecture Design, Analysis and Governance DSL\n  - Feakin: [https://github.com/feakin/fklang](https://github.com/feakin/fklang)\n- **Development state**\n  - Schema scan\n    - Scan configuration\n    - Plug-in rule customization\n    - Rule-based governance: Code Smell, Test Code Smell, SQL Smell, API Smell, Documentation Smell, etc.\n  - Architecture visualization\n    - Visual analysis based on C4 model\n      - Context: API service map (API producer supported languages: Java, Kotlin, C#, API consumer supported languages: TypeScript/JavaScript, Kotlin, Java, etc.)\n      - Container analysis. Database map (support MyBatis, JDBI, JPA)\n      - Component analysis\n      - Code analysis: supports four levels of modules, packages, classes, and methods.\n    - Advanced Analysis + Visualization\n      - System instability module analysis.\n      - Between containers: precise testing/variation analysis\n  - Architecture metrics (single DONE, distributed DOING)\n    - Volume dimension: oversize components\n    - Coupling dimension: hub components, too deep calls, circular dependencies\n    - Cohesive Dimension: Shotgun Modification\n    - Redundant dimensions: redundant elements, overgeneralization\n    - Quality dimension: test protection\n    - Continuous Integration\n  - External analysis\n    - CLOCO: Code Complexity [#79](https://github.com/archguard/archguard/issues/79)\n    - SCA analysis\n    - OpenAPI analysis\n    - Architecture analysis\n- **Running state**\n  - APM (TODO)\n- **Architecture Workbench**\n\nScreenshots:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://archguard.org/assets/screenshots/archguard-20-overview.png\"  alt=\"1\" width = 480px /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://archguard.org/assets/screenshots/archguard-20-apilist.png\" alt=\"2\" width = 480px /\u003e\u003c/td\u003e\n   \u003c/tr\u003e \n   \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://archguard.org/assets/screenshots/archguard-20-class.png\" alt=\"3\" width = 480px /\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"https://archguard.org/assets/screenshots/archguard-20-servicesmap.png\" alt=\"4\" width = 480px  /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nLanguages parse by [Chapi](https://github.com/modernizing/chapi)\n\n| Features/Languages  | Java | Python | Go | Kotlin | TypeScript | C  | C# | Scala | C++ |\n|---------------------|------|--------|----|--------|------------|----|----|-------|-----|\n| http api decl       | ✅    | 🆕     | 🆕 | ✅      | ✅          | 🆕 | ✅  | 🆕    | 🆕  |\n| syntax parse        | ✅    | ✅      | ✅  | ✅      | ✅          | ✅  | ✅  | ✅     | 🆕  |\n| function call       | ✅    | 🆕     | ✅  | ✅      | ✅          |    |    |       |     |\n| arch/package        | ✅    |        |    | ✅      | ✅          | 🆕 | ✅  | ✅     |     |\n| real world validate | ✅    |        |    |        | ✅          |    |    |       |     |\n\n## Custom Backend\n\ncase example: \n\n- [https://github.com/unit-mesh/co-unit](https://github.com/unit-mesh/co-unit) by Rust language\n\nuse [Scanner CLI](./scanner_cli) you can customize your backend. For more detail, see in: [ArchGuardHttpClient](scanner_cli/src/main/kotlin/org/archguard/scanner/ctl/client/ArchGuardHttpClient.kt)\n\nHTTP examples:\n\n```http request\nPOST http://127.0.0.1:8765/scanner/:systemId/reporting/class-items\n\nPOST http://127.0.0.1:8765/scanner/:systemId/reporting/openapi\n\nPOST http://127.0.0.1:8765/scanner/:systemId/reporting/container-services\n\nPOST http://127.0.0.1:8765/scanner/:systemId/reporting/datamap-relations\n\n...\n```\n\n### Chat\n\n关注我们：\n\n\u003cimg src=\"https://archguard.org/wechat.jpg\" width=\"380\" height=\"380\" alt=\"wechat\"\u003e\n\n欢迎加入我们：\n\n\u003cimg src=\"https://archguard.org/qrcode.jpg\" width=\"380\" height=\"480\" alt=\"wechat\"\u003e\n\n（PS：如果群满，请添加微信 `phodal02`，并注明 ArchGuard）\n\n## Thanks\n\nJetBrains support:\n\n![JetBrains Logo (Main) logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)\n\nLicense\n---\n\nThis code is distributed under the MIT license. See `LICENSE` in this directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchguard%2Farchguard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchguard%2Farchguard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchguard%2Farchguard/lists"}