~rogeruiz/scuttle

An automation translation layer for working with Structurizr DSL (GitHub mirror)
a8217f5b — Roger Steve Ruiz 6 months ago
Merge pull request #10 from rogeruiz/bare-derive-example
1efa2331 — Roger Steve Ruiz 6 months ago
Editing helpful docs to not use fake words
1baf82a9 — Roger Steve Ruiz 6 months ago
Making plant-uml the default format

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~rogeruiz/scuttle
read/write
git@git.sr.ht:~rogeruiz/scuttle

You can also use your local clone with git send-email.

#Scuttle - A CLI tool to build C4 model diagrams from your living codebase

*******                                                 ***                        * ***         ***** *               *****  *
    *       ***                               *         *      ***                     *  ****  *   ******  *             ******  *
   *         **                              **        **       **                    *  *  ****   **   *  *             **   *  *
   **        *                               **        **       **                   *  **   **   *    *  *             *    *  *
    ***                     **   ****      ********  ********   **                  *  ***            *  *                  *  *
   ** ***           ****     **    ***  * ********  ********    **       ***       **   **           ** **                 ** **
    *** ***        * ***  *  **     ****     **        **       **      * ***      **   **           ** **                 ** **
      *** ***     *   ****   **      **      **        **       **     *   ***     **   **           ** **               **** **
        *** ***  **          **      **      **        **       **    **    ***    **   **           ** **              * *** **
          ** *** **          **      **      **        **       **    ********     **   **           ** **                 ** **
           ** ** **          **      **      **        **       **    *******       **  **           *  **            **   ** **
            * *  **          **      **      **        **       **    **             ** *      *        *            ***   *  *
  ***        *   ***     *    ******* **     **        **       **    ****    *       ***     *     ****           *  ***    *
 *  *********     *******      *****   **     **        **      *** *  *******         *******     *  *************    ******
*     *****        *****                                         ***    *****            ***      *     *********        ***
*                                                                                                 *
 **                                                                                                **

#What is this CLI tool trying to solve?

The C4 model for system diagrams is really great. But adoption is a little tough if the code base is being explained after the fact. For instance, Agile practices are interpreted very literally and there's no up-front diagrams. So now you have a codebase with very little system diagrams. This tool is meant to consume active codebases and retrieve the system using the C4 model to organize and spit out very simple Structurizr DSL files which can then be maintained after creation to bootstrap the process of mass adoption of C4 model system diagrams and the Structurizr services such as SaaS and CLI tooling.

#Contributing

This project is still in development. Take a look at Issues to help track the work. They should all be labeled with help wanted for anything that outside folks can contribute to. Also, there's a need for documentation so if there's anything that needs to be updated or is confusing or missing, please contribute directly back to the documentation.

The branches are well documented but not intuitive. Please read through the Issue below for more discussion on this.

There are three branches because of the rapid development of Scuttle in recent months. The old legacy Scuttle is on the master branch which is named that way for legacy reasons. There is also the scuttle-dos branch which is the initial working sketch that uses Structurizr and PlantUML to generate diagrams. Finally there is the main default branch which contains the code for the Scuttle CLI which is more ambitious in nature than scuttle-dos but will begin development implementating the scuttle-dos functionality.

#Development

To work with Rust locally, install the rustup tool chain. You can find more information on installing it at their homepage.

Once you've installed rustup, clone this repository and run cargo build. This will give you a scuttle binary at target/debug/scuttle which you can use to test the CLI tool. As you edit the Rust code found in the src/ directory, you can continue running cargo build to rebuild the scuttle binary.

#Building the binary
cargo build
#Running the development build
target/debug/scuttle --help