SCUA
1 / 1
→ or swipe
scua, next

The SCUA Package Manager

Why SCUA needs one, what we're building, and where you come in.
Ed Morley — CTO, 25 years in games.
Unabated Gamesunabated-games.com · LinkedIn
Press → or swipe to begin.
where we are

The language works. Sharing code doesn't.

SCUA runs real programs today: the partition runtime, the compiler, gradual types, actors, capability I/O, a debugger, a baseline JIT. What it doesn't have is any way for your project to use code from mine.
Languages live or die on this. A good language with no way to share libraries stays a curiosity.
why bother

Ecosystems are the whole game.

Nobody picks a language for the syntax alone. They pick it because the pathfinding library already exists, the tweening library already exists, and getting either into a project is one command.
lua's lesson

Embedded packages are hard to retrofit.

Lua has a package manager, LuaRocks, and for standalone Lua it does its job. But when Lua lives inside a C++ engine, getting a package visible to your scripts can be fiddly: search paths, install trees, per-platform differences. Most studios end up vendoring libraries by hand instead.
The takeaway for SCUA: design for the embedded user from the start, and keep the infrastructure simple enough that it can't fall over.
the other cautionary tale

npm shows what bolted-on safety costs.

npm won its ecosystem, and then spent a decade paying for early design choices. We get to read that bill before writing our own.
the homework

We did the research before picking a design.

This wasn't a whiteboard sketch. We studied how a dozen ecosystems store, serve, version, and trust packages, the ones that got it right and the post-mortems of the ones that didn't, then wrote three complete competing designs and stress-tested them against each other before choosing.
A dozen ecosystems studiedstorage and dedup, registries, supply-chain security, versioning, embedded builds, and docs for AI agents
3 competing designsfrom "no infrastructure at all" to "rebuild distribution around content hashes"
Every trade-off written downincluding the arguments against the design we chose
The long version is in the repo, under docs/proposals/package-manager/.
the plan

A registry is just a directory of files.

The winning design (we call it Harbor) has one trick at its centre: the package repository is a static file layout. The same layout works at every distance from your code.
deps/ in your project · vendored, offline ~/.scua/store on your machine · shared by all projects buildbox.lan in your studio · a bucket or an nginx dir the public index on the internet · static files on a CDN
the money question

Built to cost almost nothing to run.

A package ecosystem shouldn't need a company attached to keep it alive. So rather than plan to fund the expensive parts, we designed them out.
The public index is cheap enough that we can host it ourselves from day one.
teams and companies

Your packages, inside your firewall.

Private repositories aren't a paid add-on. They're the same file layout, hosted wherever you already host things.
embedded, properly

The engine case comes first this time.

The whole point. When SCUA lives inside your C++ app, packages should feel like part of the build, not a path hack.
security, part one

The safety you get on day one.

Most of the protection costs no infrastructure, because it's structural. No moderator enforces these; the design just doesn't contain the hole.
security, part two

Trust as a traffic light. An honest one.

Every package gets a light, computed on your machine against your policy. You always see the reasons, not just a colour, and no registry gets to sell anyone a badge.
Honesty matters here: at launch, most public packages will sit at amber, because the audit and witnessing layer that feeds green needs an ecosystem (and funding) we don't have yet. The light will brighten as that arrives. It will not pretend.
and the robots

Packages that teach your AI to use them.

A package can carry a compact pack for agents: a one-page API summary, schemas, and examples that are tested in CI so they actually compile. Pinned to the exact version you resolved, because the docs are hashed with the code.
the road

First the verbs, then the evidence.

One design, shipped in stages. Same commands and file formats throughout, so nothing you adopt early gets migrated out from under you.
The full plan is ADR-0076 in the repo, with every trade-off argued in the open.
the ask

Help us make packages the thing people praise SCUA for.

This is early, which means small contributions steer big outcomes. Concretely:
Unabated Gamesunabated-games.com · LinkedIn