Skip to content

Internal Cargo Registry

Oxide is distributed via a kellnr instance at https://kellnr.com7.in/. Every release is published there; that’s how you install the CLI and how your projects depend on the framework crates.

One-time setup

  1. Get a token from kellnr

    Open kellnr.com7.in → log in → Account → Tokens → New token. Copy the value (kellnr shows it once).

  2. Configure cargo

    ~/.cargo/config.toml
    [registries.com7-innovation]
    index = "sparse+https://kellnr.com7.in/api/v1/crates/"
    ~/.cargo/credentials.toml
    [registries.com7-innovation]
    token = "<paste-token-here>"
    Terminal window
    chmod 600 ~/.cargo/credentials.toml
  3. Verify

    Terminal window
    curl -I https://kellnr.com7.in/

    Expect a 200 or 302 from the kellnr UI. If TLS is broken or DNS doesn’t resolve, every cargo command will hang silently — fix the network first.

Install the CLI

Terminal window
cargo install oxide-cli --registry com7-innovation

Use it from a project

In your Cargo.toml:

[dependencies]
oxide = { version = "0.1.0", registry = "com7-innovation" }
oxide-auth = { version = "0.1.0", registry = "com7-innovation" } # optional

Standard semver — ^0.1.0, ~0.1, etc. all work.

Publishing (framework maintainers only)

The four crates publish in dependency order. cargo publish refuses a dirty git tree by default — commit first.

Terminal window
cargo publish -p oxide-macros --registry com7-innovation
cargo publish -p oxide --registry com7-innovation
cargo publish -p oxide-auth --registry com7-innovation
cargo publish -p oxide-cli --registry com7-innovation

Each command packages the crate, verifies it builds, uploads the .crate to kellnr, and kellnr regenerates the index entry automatically. Run them top-to-bottom — kellnr verifies that each crate’s deps already exist in the registry before accepting it.

Bumping a release

The four crates inherit version from the workspace root, so they all bump together. In the repo root Cargo.toml:

[workspace.package]
version = "0.1.1"

Re-run the four publish commands. cargo publish rejects a re-publish of an existing version, so fixing a botched release means bumping the patch.

Troubleshooting

error: 401 Unauthorized

Token wrong or missing. Check that:

Terminal window
grep -A1 'com7-innovation' ~/.cargo/credentials.toml

shows your token. If kellnr revoked it (via the UI), generate a new one.

error: failed to verify package tarball

Almost always means a workspace dep isn’t in the registry yet. Did you skip an earlier cargo publish? Run them in dep order: oxide-macros → oxide → oxide-auth → oxide-cli.

error: crate version 0.1.0 already exists

Bump version in [workspace.package] and re-publish.

Cargo hangs on Updating ... index

DNS or TLS issue reaching kellnr.com7.in. Confirm with curl -I https://kellnr.com7.in/. Check VPN if the registry is on a private network.

error: registry 'com7-innovation' not found

The [registries.com7-innovation] block is missing from ~/.cargo/config.toml. Re-do step 2 of one-time setup.