Deployment View

Infrastructure Level 1

Bausteinsicht is a single-binary CLI tool that runs on the developer’s local machine. There is no server, no database, and no network communication at runtime.

deployment overview

Motivation

Bausteinsicht intentionally has the simplest possible deployment: one binary, no dependencies. This directly serves the Learnability quality goal — download, run, be productive.

Quality and Performance Features

Feature Description

Startup time

< 10ms (native Go binary, no runtime to load)

Sync time

< 100ms for models with up to 200 elements (in-memory XML/JSON processing)

Binary size

~10-15 MB (single statically linked binary)

Zero dependencies

No runtime, no package manager, no database, no network

Mapping of Building Blocks to Infrastructure

Building Block Deployment

cmd/bausteinsicht

The compiled binary, distributed via GitHub Releases for Linux, macOS, Windows (amd64 + arm64)

internal/*

Compiled into the same binary. No separate deployment.

JSON Schema

Published to GitHub (raw URL) and referenced via $schema in model files. Downloaded once by the IDE.

Template

Bundled as a Go embed resource in the binary for init command. Users can override with a local template.

Distribution

GitHub Releases

Each tagged version produces binaries for all target platforms via GoReleaser:

Platform Binary Name

Linux amd64

bausteinsicht-linux-amd64

Linux arm64

bausteinsicht-linux-arm64

macOS amd64

bausteinsicht-darwin-amd64

macOS arm64 (Apple Silicon)

bausteinsicht-darwin-arm64

Windows amd64

bausteinsicht-windows-amd64.exe

Installation

# Direct download (example for Linux amd64)
curl -L https://github.com/docToolchain/Bausteinsicht/releases/latest/download/bausteinsicht-linux-amd64 -o bausteinsicht
chmod +x bausteinsicht

# Or via Go install
go install github.com/docToolchain/Bausteinsicht/cmd/bausteinsicht@latest

Embedded Resources

The init command needs a default template and sample model. These are embedded into the binary using Go’s embed package:

//go:embed templates/default.drawio
var defaultTemplate []byte

//go:embed templates/sample-model.jsonc
var sampleModel []byte

This eliminates the need to distribute additional files alongside the binary.