Giter VIP home page Giter VIP logo

Build Maven Central License

archifacts is a free (Apache 2.0 license) library for describing and detecting architectural building blocks and their relationships in your Java applications.

archifacts heavily relies on ArchUnit which analyzes the Java bytecode. With the help of descriptors archifacts identifies building blocks, relationships and containers of your application and builds a model.

Having this model in place you can visualize your application's architecture or verify it against certain rules.

While we already have some support for the former, the latter is subject of future work.

Experimental API

Caution! archifacts is in a very early state. The API is not intended to be stable. We might introduce breaking changes at any time if we think it improves the overall user experience. Please be aware of this, if you decide to use archifacts.

Nevertheless we try to reduce the breaking changes to a minimum, but there is no guarantee.

Usage

Gradle

implementation 'org.archifacts:archifacts-core:0.5.0'

Maven

<dependency>
    <groupId>org.archifacts</groupId>
    <artifactId>archifacts-core</artifactId>
    <version>0.5.0</version>
</dependency>

How to get started

Take a look at our Fraktalio demo application example and Spring Restbucks example to get an idea about how to use archifacts.

Fraktalio

The project documents the Fraktalio demo application which is a Spring Boot and Axon Framework based microservice system, implemented in Java and Kotlin.

The generated documentation is deployed using GitHub Actions. You can find it here

Spring Restbucks

The project documents the Spring Restbucks application which is a Spring Boot and jMolecules based modulithic system, implemented in Java.

The generated documentation is deployed using GitHub Actions. You can find it here

Why is it called 'archifacts'?

archifacts is a made-up word out of architects, artifacts and facts.

architects who want to visualize or verify their architecture are the main target group of the library.

Every class, interface or enum in your application is treated as an artifact. Artifact is the common base class for all these elements and therefore the foundation of archifacts.

archifacts is all about facts as the model is extracted from bytecode. With this approach archifacts tackles outdated documentation. The model contents are facts.

How can I contribute?

The most helpful contribution in this early project phase is feedback. Feedback about bugs, missing features, misconceptions, successes, whatever. We would like to get in touch with the library's users to improve archifacts.

License

ArchUnit is published under the Apache License 2.0, see http://www.apache.org/licenses/LICENSE-2.0 for details.

archifacts's Projects

archifacts icon archifacts

archifacts is a library to extract your architectural concepts out of your application's code

fraktalio-courier-demo icon fraktalio-courier-demo

Axon demo - `Courier Management` Information System - A part of the systems landscape: https://github.com/fraktalio/courier-demo, https://github.com/fraktalio/restaurant-demo, https://github.com/fraktalio/order-demo

fraktalio-order-demo icon fraktalio-order-demo

Axon demo - `Order Management` Information System - A part of the systems landscape https://github.com/fraktalio/courier-demo, https://github.com/fraktalio/restaurant-demo, https://github.com/fraktalio/order-demo

fraktalio-restaurant-demo icon fraktalio-restaurant-demo

Axon demo - `Restaurant Management` Information System - A part of the systems landscape https://github.com/fraktalio/courier-demo, https://github.com/fraktalio/restaurant-demo, https://github.com/fraktalio/order-demo

spring-restbucks icon spring-restbucks

Implementation of the sample from REST in Practice based on Spring projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.