Skip to content

Releases: Cobrust-lang/cobrust

Cobrust v0.6.0

22 May 08:51

Choose a tag to compare

Installation

v0.6.0 adopts the FHS-ish bin/lib/share wheel layout per
ADR-0069. Tarballs extract to a single self-contained
cobrust-v0.6.0/ directory.

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli

Option B — prebuilt wheel (no Rust needed; v0.6.0 layout)

Pick the tarball for your platform + CPU level, extract to a
stable location, and symlink the cobrust binary into your
$PATH. The runtime + stdlib live in lib/ + share/
siblings; do NOT move the binary out of its bin/ directory.

# macOS Apple Silicon M1 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-aarch64-apple-darwin-m1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrust

# Linux x86_64 — glibc baseline (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-gnu-v1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrust

# Linux x86_64 — static musl (Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-musl-v1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrust

Each wheel tarball bundles:

  • bin/cobrust — main driver (also exposes cobrust lsp + cobrust dap subcommands per ADR-0068)
  • bin/cobrust-lsp + bin/cobrust-dap — transitional shim binaries (deleted at v0.7.0; extension v0.1.x compat)
  • lib/cobrust/libcobrust_stdlib.a — prebuilt static stdlib archive
  • share/cobrust/runtime/{cobrust_main.c,cpu_features.c} — runtime C entrypoint + CPU feature helpers

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-musl-v1.tar.gz | tar xz -C /opt/ \
    && ln -s /opt/cobrust-v0.6.0/bin/cobrust /usr/local/bin/cobrust

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Breaking change from v0.5.x

Users who manually cp cobrust /usr/local/bin/ from a flat
v0.5.x tarball MUST re-install via the new tar xz
ln -s flow above. Per F46: the v0.5.x flat-binary wheel
was unusable for cobrust run regardless because the
runtime + stdlib were not bundled (binary baked the GH
Actions runner workspace path). v0.6.0 fixes both sides.

Cobrust v0.5.2

22 May 07:46

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.5.1

22 May 06:35

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.5.0

22 May 04:04

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.4.0

21 May 10:29

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.4.0-rc1

21 May 10:17

Choose a tag to compare

Cobrust v0.4.0-rc1 Pre-release
Pre-release

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Option C — Alpine / distroless container (musl static binary)

FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.3.0

18 May 04:15

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.2.0

16 May 09:32

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.1.2

11 May 04:41

Choose a tag to compare

Installation

Option A — cargo install (requires Rust toolchain)

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust needed)

# macOS arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.2/cobrust-v0.1.2-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.2/cobrust-v0.1.2-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Quick start

cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, world

See Getting Started for the full guide.

Cobrust v0.1.1

11 May 03:10

Choose a tag to compare

⚠️ DEPRECATED — Please use v0.1.2

The prebuilt binary tarballs in this v0.1.1 release embed the version
string cobrust 0.1.0-beta instead of cobrust 0.1.1 because the
workspace version field bump happened AFTER the tag (commit ordering
defect). The v0.1.2 patch fixes this by bumping the version BEFORE
tagging. The v0.1.1 tag and assets remain available as historical
artifacts but should not be used for fresh installs.

See docs/releases/v0.1.2-release-notes.md for migration notes.


Cobrust v0.1.1 — Post-v0.1.0 CI Hot-Fix

Patch release on top of v0.1.0 (commit c40623e).
No language / runtime / translator behavior changes — CI hot-fix only.

Why v0.1.1 (not v0.1.0 retag)

  • v0.1.0 is tagged at c40623e and is immutable; retagging would invalidate
    any downstream user who pinned by SHA or tag.
  • The CI failures were infrastructure-level regressions, not language regressions:
    the compiler, type checker, translator, and LLM router all behave identically
    to v0.1.0.
  • A patch release preserves release history immutability while clearly signaling
    "the canonical working build is now v0.1.1."

What's fixed

Hallucinated SHA pins (4186c8e)

An automated GitHub Actions SHA-pinning step pinned four GitHub Actions steps
to commit SHAs that did not correspond to the tagged versions cited in the comments.
The hallucinated SHAs caused CI to fetch inconsistent action versions, producing
intermittent checkout and toolchain failures on both macOS and Linux runners.
Fix: revert all four SHA pins to their upstream semver tag forms
(actions/checkout@v4, dtolnay/rust-toolchain@stable, etc.), which are
the canonical, reproducible references. A postmortem and machine-enforced
prevention mechanism accompany this fix (see snapshot schema enforcement below).

PyO3 0.22 vs newer-Python host (03003f3 + acc708c)

PyO3 0.22.6 declares a maximum supported Python version of 3.13. Two separate
CI paths surfaced incompatibilities with newer Python hosts:

  • macOS runner (Python 3.14 default): cargo build -p cobrust-<lib> --features pyo3
    aborts with "the configured Python interpreter version (3.14) is newer than
    PyO3's maximum supported version (3.13)." The five *_pyo3_compiles.rs
    harnesses implement a "succeed-or-skip-cleanly" contract per ADR-0011 §6,
    but the version-out-of-range error string was not in the skip-matcher list,
    causing the harness to panic rather than skip. Fixed in 03003f3.
  • Ubuntu runner (Python 3.11 via apt): The ci.yml step installs
    python3-dev via apt, giving python3.11. PyO3 0.22's macro expansion
    under CPython 3.11 ABI emits four classes of -D warnings-fatal errors
    (unused import, deprecated SIGNATURE constants, and an unsafe-block
    requirement on unwrap_required_argument) — all originating inside
    pyo3-generated code, not cobrust source. Extended the skip-pattern matcher
    to cover all four error signatures in acc708c.

The long-term fix (pyo3 0.22 → 0.23 upgrade) is tracked in internal docs; the
skip-pattern approach is the correct short-term gate while the upgrade sprint
is scheduled.

Project integrity enforcement (5a09e02)

Added a snapshot-lint script and pre-commit hook to prevent state drift between
the repository and its documentation. A postmortem for the SHA-pinning incident
is included. Contributors: see CONTRIBUTING.md
for the one-time hook setup.

Install path

Option A — cargo install (requires Rust toolchain):

cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli

(crates.io publish queued for v0.2.0)

Option B — prebuilt binary (no Rust required):

# macOS arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux x86_64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

# Linux arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/

Platform support note: v0.1.1 ships prebuilt binaries for macOS arm64
(Apple Silicon) and Linux x86_64/arm64 only. Apple Intel (x86_64-apple-darwin)
and Windows (x86_64-pc-windows-msvc) builds are queued for v0.2.0; the
release.yml workflow already exercises them as best-effort targets but they
are not currently tier-1 release artifacts. macOS Intel users on supported Rust
toolchains can build from source via the cargo install --git ... path above.

What's queued for v0.1.x / v0.2.0

  • pyo3 0.22 → 0.23 upgrade: impact analysis and migration plan complete.
  • Recursion / divide-and-conquer examples: extend the existing loop + accumulator examples corpus.
  • textwrap generalization: extend N=2 to arbitrary N wrapping strategies.
  • LLM bench methodology Option A integration: wire the bench harness to
    the LLM router's real-provider path for reproducible latency/cost comparisons.

Acknowledgements

A post-v0.1.0 external review pass identified all three gaps in this release
(hallucinated SHA pins, PyO3 drift, and project integrity gaps) and prescribed
the fixes that were subsequently executed. All identified issues are now resolved.

SHA roster

Tag Commit CI status
v0.1.0 c40623e red — published before the 3 SHA-pin + pyo3-skip hot-fixes; preserved as immutable historical record
v0.1.1 tag head of this release (see git rev-parse v0.1.1) green — fmt 0 / clippy 0 / build 0 / test 0 / doc-coverage 0 / real-llm-smoke skip; verified on parent acc708c (this release's only delta is documentation: documentation cleanup + this roster cleanup)

Note: avoiding a literal SHA for v0.1.1 in the table is deliberate — the
tag's commit SHA is unknowable inside the very commit that the tag will
reference (self-reference), and amending a published commit on main is
forbidden by the repo's commit policy (no force-push to main). The
commands git rev-parse v0.1.1 and gh release view v0.1.1 both resolve
to the canonical SHA without ambiguity.