Routing
Routing
The repository, license, and how to contribute.
Arc Route is developed in the open at github.com/arcroute/arc-route. The codebase is a pnpm monorepo orchestrated by TurboRepo: eight published packages under @arc-route/* (types, shared, graph, scoring, execution, routing-engine, client, sdk), three reference apps (explorer, simulator, dashboard), runnable examples, a fixtures corpus, a benchmarks suite, and a Vitest-driven tests package. The root package, @arc-route/protocol, pins the toolchain — Node 20+, pnpm 9, TypeScript 5.6.
The repository follows standard open-source hygiene: continuous integration via GitHub Actions, changesets for versioning and releases, Husky and lint-staged for pre-commit checks, and Biome plus Prettier for linting and formatting. Top-level documents — README, ROADMAP, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, SUPPORT, and CHANGELOG — govern how the project is run.
The protocol is released under the MIT License. Anyone is free to read, use, modify, and redistribute the code, commercially or otherwise, subject to the terms of the license and its copyright notice. The permissive license is deliberate: routing infrastructure is most useful when it is widely inspectable and adoptable.
To work on the protocol locally, clone the repository and install dependencies with pnpm at the workspace root. The root scripts delegate to TurboRepo: build, dev, test, typecheck, and clean all fan out across the packages and apps. Linting runs through Biome (biome check .), and formatting through Prettier. Node 20 or later and pnpm 9 or later are required, matching the engines and packageManager fields in the root package.json.
Tests run on Vitest and cover the packages and the shared tests workspace; the benchmarks suite and the fixtures corpus support performance and correctness work. The explorer, simulator, and dashboard apps can be run from their own workspaces for interactive development.
Contributions are welcome and follow the process described in CONTRIBUTING.md. The project uses changesets: a change that affects a published package is accompanied by a changeset describing the bump, and releases are produced by building with TurboRepo and publishing through changesets. Substantive changes should include tests where applicable and pass the CI checks — typecheck, lint, and the test suite — before review.
Behavior in the project is governed by CODE_OF_CONDUCT.md, and security issues are handled per SECURITY.md rather than through public issues. The roadmap in ROADMAP.md is the best place to see where contributions align with the project's direction.