Skip to content

Tooling ​

Arqen includes a complete developer toolchain so you never have to think about which tools to install or run. Every command works from your project root with zero configuration.

Commands ​

CommandWhat it does
arqen lintCheck formatting (cargo fmt --check) and clippy warnings
arqen formatAuto-fix formatting (cargo fmt)
arqen testRun all tests (cargo test --all-features)
arqen buildBuild the project (cargo build)
arqen docGenerate documentation (cargo doc --no-deps)
arqen checkValidate project structure and configuration
arqen doctorDiagnose Rust, Docker, and environment setup

Quick workflow ​

bash
arqen new my-api
cd my-api
arqen dev          # run in development mode
arqen lint         # check code quality
arqen test         # run tests
arqen build        # build for production

Release builds ​

Pass --release to test or build for optimized output:

bash
arqen test --release
arqen build --release

JSON output ​

Every command supports --json for CI and scripting:

bash
arqen --json lint
arqen --json test
arqen --json build

JSON output goes to stdout. Errors are also emitted as JSON.

Exit codes ​

CodeMeaning
0Success
2Usage error (bad arguments)
3Configuration error
4Dependency not found (cargo missing)
5Runtime error (check or build failed)
130Interrupted (Ctrl+C)

Generated project tooling ​

When you run arqen new, the project ships with:

  • rustfmt.toml — arqen default formatting config
  • clippy.toml — arqen default lint config
  • arqen.toml — starter runtime configuration
  • .env.example — environment variable template
  • AGENTS.md — portable project guidance and validation commands

These are used automatically by arqen lint and arqen format. Edit them to customize formatting and lint rules.

The generator can also add starter guidance under examples/ and optional Nice Code documentation and CI under NICE_CODE.md and .github/workflows/nice-code.yml. Nice Code remains independent of the application's Rust dependencies.

CI integration ​

Use the arqen commands directly in your CI pipeline:

yaml
- name: Lint
  run: cargo run -p arqen --features cli --bin arqen -- lint

- name: Test
  run: cargo run -p arqen --features cli --bin arqen -- test

- name: Build
  run: cargo run -p arqen --features cli --bin arqen -- build

Or install the CLI first for faster runs:

yaml
- name: Install CLI
  run: cargo install --path crates/arqen --features cli

- name: Lint
  run: arqen lint

- name: Test
  run: arqen test

Optional Nice Code integration ​

Nice Code is an optional development and CI tool. Arqen does not install it, depend on it at runtime, or require Node.js for applications.

Working on Arqen ​

The repository wrapper fetches the pinned Nice Code v0.3.2 source into a temporary cache:

bash
./scripts/check-nice-code.sh

Set NICE_CODE_DIR to use an existing checkout without fetching, set NICE_CODE_CACHE_DIR to choose the cache location, or set NICE_CODE_VERSION to test another tagged release explicitly. The wrapper runs the full audit and does not modify the Arqen project.

Using Nice Code in an Arqen application ​

Install or invoke the public npm launcher from the application repository:

bash
npx --yes @sayanmohsin/nice-code@0.3.2 --changed --project .

It requires Node.js 20 or newer. For CI, run the same command with --ci --format sarif and upload the resulting SARIF file with your preferred code-scanning integration. This remains entirely opt-in and is not an Arqen package dependency.

Rust-first backend toolkit · explicit integrations for HTTP, jobs, and Thingd