Skip to content

riken127/abstack

Repository files navigation

abstack

abstack is a declarative DSL compiler that unifies image build definition (template) and service runtime instantiation (service).

A single .abs file compiles into:

  1. Dockerfile.<service> per service.
  2. docker-compose.generated.yml with service runtime projection.

Current Version

v0.6.0

Why This Model

Instead of authoring Dockerfile and compose separately, abstack treats compose as a projection target over template-driven Docker semantics.

Quickstart

cmake --preset native
cmake --build --preset native
./build/native/abstack samples/unified.abs --out-dir generated

Run tests:

ctest --test-dir build/native --output-on-failure

Key Capabilities

  1. Parameterized reusable templates.
  2. Multi-stage builds.
  3. Service runtime overlays (env, expose, cmd, entrypoint, port, depends_on).
  4. Multiple template instantiations per service (use can appear multiple times).
  5. Command/entrypoint scalar and array forms.
  6. Optional bundled stdlib profiles (core-v1 / default) for reusable service templates.
  7. Native Windows build/test support in CI.
  8. CLI callbacks with persistent log registration (.abstack/logs/abstack-cli.log) and spinner feedback for wait-heavy shell commands.
  9. Utility-grade CLI commands: build, sync, fmt, docker, compose, stdlib, and optional tui.

Documentation

  1. Language spec
  2. Grammar reference
  3. Language guide
  4. Stdlib guide
  5. CLI guide
  6. CLI reference
  7. CLI cookbook
  8. Examples guide
  9. Tooling/CI guide
  10. Release notes v0.6.0
  11. Release notes v0.5.0
  12. Release notes v0.4.0
  13. Release notes v0.3.0
  14. Changelog
  15. Contributing

Project Layout

LSP

clangd is the recommended language server. Configure with:

  1. .clangd
  2. compile database from cmake --preset native (build/native)

About

Abstack is a declarative DSL and compiler that lets you define containerised services, build pipelines, and runtime topology in a single, composable source of truth, compiling it into Dockerfiles and orchestration manifests.

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors