aru

command module
v0.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2026 License: MIT Imports: 33 Imported by: 0

README

Arandu

arandu-io/aru

The Arandu command line.

Build Status Go Reference Latest Version License

About aru

brew install arandu-io/tap/aru
aru new my-app
cd my-app && aru dev

aru help lists every command. The ones that carry the most:

  • aru new — a project, ready to run
  • aru dev — build the views, run the application, restart on every change
  • aru make:module — an entity with its policy, repository, service, request, migration, seeder and four screens, compiling and tested
  • aru generate — the same, from a written specification
  • aru doctor — twenty-two checks that a project honours the framework's contracts, in CI
  • aru trace — a request reconstructed in the terminal, from the running application

The view compiler is part of this binary rather than something it downloads: one fewer thing to pin, verify and cache.

One direct dependency: gopkg.in/yaml.v3, for the specification format. CI refuses the second.

The authentication screens are not here — they are arandu-io/ui, published into your project and yours to edit.

Learning Arandu

The API reference is generated from the doc comments and lives on pkg.go.dev. Every exported symbol carries one, and that is deliberate: it is the documentation that cannot drift from the code, because it sits in the same file.

The CLI documents itself. aru help lists every command, and each one explains what it writes and what to do with it. aru doctor explains what it found and what breaks, not which rule was violated.

A guide and a website do not exist yet, and that is a decision rather than a gap: a guide written against an API that still moves is work done twice, and the second time is worse — there is wrong documentation published. The site is the next phase, and it will be an Arandu application.

Contributing

See CONTRIBUTING.md. Before opening a pull request, the three commands at the top of that file have to pass, and CI runs exactly them.

Security Vulnerabilities

Please review our security policy on how to report a vulnerability. Never open a public issue for one.

License

Open-sourced software licensed under the MIT license.

Documentation

Overview

Command aru is the Arandu CLI.

It does two kinds of work, and the split matters. Commands that only touch files -- key:generate, new, make:*, doctor -- run here. Commands that need the registered modules -- serve, migrate, routes -- are delegated to the project's own binary, because only that binary knows which modules exist. Nothing is resolved by reflection, and everything the CLI generates is readable, committable Go.

The binary is called aru rather than arandu: the arandu name is already taken by another tool: the framework and the tool that drives it are separate names.

Directories

Path Synopsis
internal
doctor
Package doctor turns the architecture rules into static analysis.
Package doctor turns the architecture rules into static analysis.
fonts
Package fonts vendors a web font into a project, once, from the command line.
Package fonts vendors a web font into a project, once, from the command line.
gen
Package gen turns a module specification into Go source.
Package gen turns a module specification into Go source.
kyse
Package kyse compiles a view into Go.
Package kyse compiles a view into Go.
manifest
Package manifest reads arandu.mod.toml, the metadata every module declares.
Package manifest reads arandu.mod.toml, the metadata every module declares.
spec
Package spec is the declarative form of a module: the DSL of phase 4.
Package spec is the declarative form of a module: the DSL of phase 4.
toolchain
Package toolchain downloads and caches the one binary the view layer needs.
Package toolchain downloads and caches the one binary the view layer needs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL