mrkeyoor.com_
Tue 01 Sept 17:40 UTC
LLM Toolsevaluationupdated 01 Sept 2026

rig review

Rig is a Rust library for adding language models, tools, memory, and retrieval to an application without writing a separate client for every provider. It supplies shared interfaces and an agent runtime, while leaving the surrounding product, deployment, and model accounts to you.

trackingstars / 7d
Verdict

Our Rig build succeeded in 242 seconds, but cargo test finished with 3,870 of 3,872 tests passing, so adoption should begin behind an internal wrapper. Use it when Rust is fixed, multiple providers are likely, and the team can budget for v0.x migrations. Choose a narrower client for one provider, or wait if proxy-routed WebSockets, WASI, or the affected Postgres vector filters are requirements.

We ran it

Lab card: what happened when we ran rigScreenshot of rig (rig.rs)
Install✓ · 107s404 packages
Build✓ · 242s
Tests✗ · 648s3870 passed · 2 failed of 3872 (cargo test)
Repo3425 files~372,392 lines of source · 58.3 MB · 3 CI workflows · tests dir

Answers from our run

Does rig build from source?

Dependencies installed in 107 seconds (404 packages), and the build succeeded in 242 seconds. We cloned commit 475cfdd into a clean Debian container with 3 CPUs and no project-specific setup.

Do rig's tests pass?

Not all of them: 3870 of 3872 passed and 2 failed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use rig?

Teams that need a stable public API across routine upgrades: the README warns that future releases will break compatibility, and the migration guide records repeated disruptive versions.

What are the alternatives to rig?

LangChain, LlamaIndex, async-openai. Our Rig build succeeded in 242 seconds, but cargo test finished with 3,870 of 3,872 tests passing, so adoption should begin behind an internal wrapper.

Setup3/5Cargo setup is direct; the 404-package workspace took time
Docs5/5API, runtime, tests, integrations, and migrations are explicit
Community5/58,483 stars, current pushes, releases, and issue discussion
Maturity3/5Large suite and real users, with v0.x breaks and 2 test failures

Who it’s for

Rust teams that need one interface across several model providers.
Developers building typed agents with tools, streaming, hooks, and saved run state.
Applications that want optional vector database and embedding integrations in the same workspace.
Browser developers who can stay within Rig's portable core and classic runtime limits.
MCP users building native Rust clients that import server tools into an agent.

Who it’s NOT for

Teams that need a stable public API across routine upgrades: the README warns that future releases will break compatibility, and the migration guide records repeated disruptive versions.
Maintainers who require a green baseline before adoption: our cargo test run ended with 2 failures out of 3,872.
WASI deployments or browser apps that require MCP: the README says WASI is unsupported and rig-rmcp is native-only.
Networks that force OpenAI Responses WebSockets through an outbound proxy: open issue 2233 says that path opens a direct connection outside the custom HTTP backend.
Postgres vector search users who need member filters or thresholds without extra regression coverage: open issue 2376 reports invalid generated SQL for those requests.
Regulated builds that must exclude every unused provider endpoint: issue 2237 reports that 25 provider modules compile unconditionally.

Setup reality

Our sandbox installed 404 Rust packages in 107 seconds, then built the workspace successfully in 242 seconds. Tests failed after 648 seconds: cargo reported 3,870 passed and 2 failed out of 3,872. The log tail identifies rig --test llamacpp as one failing target.

A basic application adds the rig crate and an async runtime. Hosted providers need their own credentials, while local inference and vector-store features bring the matching model files, databases, or services. The root crate exposes companion integrations through Cargo features.

Portable core and the classic agent runtime support browser WASM, but WASI is unsupported. MCP through rig-rmcp is native-only. Live provider tests need real accounts; the documented cassette tests replay without keys by default.

Rig v0.42.0 puts 20-plus model providers behind one interface

Rig v0.42.0 gives Rust applications shared types for completions, embeddings, messages, tools, and memory. The README lists more than 20 model providers and over 10 vector-store integrations, plus transcription, image generation, and audio generation capabilities. A developer can change a provider client without redesigning the entire application layer. That is useful for products that expect vendor choice, provided the team still tests each provider's request shapes and response details instead of assuming identical behavior.

The root rig crate is a facade over smaller pieces. rig-core contains provider-neutral contracts, while rig-agent adds builders, multi-turn prompting, streaming, hooks, extraction, contextual tools, and a serializable run state. The classic agent runtime is enabled by default. Companion crates add databases, local inference, cloud services, and MCP through Cargo features. A team that needs only request and response types can depend on the core; a product agent can take the larger default surface.

The 404-package workspace built successfully in 242 seconds

Our fresh Rust container installed 404 packages in 107 seconds. The checkout held 3,425 files, roughly 372,392 source lines, and 58.3 MB before the toolchain populated its build outputs. That is normal territory for a broad Rust workspace, yet it changes the cost of evaluating a small patch. A basic consumer only runs cargo add rig; a contributor pulling the complete repository is signing up for provider clients, agent code, companion crates, examples, and integration fixtures.

The workspace build completed successfully in 242 seconds on 3 CPUs with 12 GB of RAM. No secrets were present, so that result covers compilation rather than a real call to a hosted model. Provider clients generally read credentials from the environment, as the README's OpenAI example does. Database integrations also need their corresponding services, and local model features need the relevant model assets and native stack. Rig supplies library pieces, not a ready-to-operate agent service.

What happened when we ran it

Our sandbox installed Rig in 107 seconds, built it in 242 seconds, and reached the end of cargo test after 648 seconds. Cargo counted 3,870 passing tests and 2 failures out of 3,872. Installation and compilation therefore succeeded, while the complete test command returned exit code 101. The measurement used commit 475cfdd in an unprivileged container with no provider secrets, which matters when comparing it with a developer laptop or a live integration environment.

The log tail shows several passing test binaries before a failing result with 203 passed and 1 failed. Cargo then named rig --test llamacpp as a rerun target. The supplied tail does not show the failing test name, assertion, or the other failure included in the 2-test total. It would be wrong to label either one a network, hardware, or local-model problem from that evidence. The useful conclusion is simpler: this checkout did not provide a clean test baseline in our stated sandbox.

Two test failures complicate changes across the provider matrix

A total of 3,870 passes is substantial evidence that the workspace exercises a lot of behavior. The remaining 2 failures still matter to maintainers because provider abstractions are sensitive to request mapping, tool calls, streaming order, and saved state. Rig's test documentation separates key-free cassette replay from live recording, and keeps tests needing real accounts apart. That design lets CI cover recorded provider behavior, although a cassette cannot prove that a provider's live API still behaves the same today.

Our scan found 3 CI workflow files, a dedicated tests directory, and no Dockerfile. The repository also publishes a migration guide that checks API changes and silent behavior changes release by release. That is better than hiding compatibility costs, but it does not remove them. The README warns that upcoming releases will include breaking changes, and the guide says v0.40 alone carried 31 breaking changes. Put Rig behind application-owned traits before its public types spread through business code.

Browser WASM works, while WASI and browser MCP remain unavailable

Rig v0.42.0 supports wasm32-unknown-unknown for the portable core and classic runtime. WASI is explicitly unsupported, with open issue 949 marked blocked and low priority. The rig-rmcp companion is native-only because its client handler requires thread-safety bounds that the browser tool registry cannot meet. A browser product can still call supported providers through the portable layer, but it cannot assume every native runtime feature will cross the compilation target with it.

Native MCP support can turn a server's tool list into Rig tools and keep the registry updated when the server announces changes. That is useful for agents that discover tools at runtime. Corporate network rules need a separate check: issue 2233 says the OpenAI Responses WebSocket path uses a direct connection rather than the configured HTTP backend. Issue 2237 also reports that 25 provider modules compile into rig-core without per-provider feature gates, which can create audit work even when unused endpoints never execute.

Release v0.42.0 is active, and open integration bugs need selection tests

GitHub showed 8,483 stars, 117 combined issues and pull requests, and a September 1, 2026 push. Release v0.42.0 arrived on August 17 after v0.41.0 on July 28 and v0.40.0 on July 11. That cadence and same-day repository activity indicate active maintenance. They also mean upgrades arrive often. The combined open number is not a count of defects, so specific integration reports are more useful than the headline queue.

Issue 2376 reports invalid SQL from Postgres member filters, single-condition filters, and thresholds. Issue 2424 says the listed Groq models were deprecated, while issue 2233 covers proxy routing for Responses WebSockets. These are bounded problems, not a claim that Rig is generally unreliable. They show why an 8,483-star abstraction still needs contract tests for the exact provider, transport, and vector store a product selects. Rig is a good Rust shortlist candidate when that testing and v0.x migration work are accepted up front.

Alternatives

ProjectWhat it isPick it when
LangChain gh↗A Python framework with a broad catalog of model, tool, retrieval, and agent integrations.pick this instead when Python ecosystem coverage and ready-made integrations matter more than Rust types and binaries.
LlamaIndex gh↗A Python and TypeScript data framework centered on retrieval and agent workflows over private data.pick this instead when document ingestion and retrieval components are the main job.
async-openaiA narrower asynchronous Rust client for OpenAI-compatible APIs.pick this instead when one provider client is enough and an agent framework would add unused surface.
CandleA Rust machine-learning framework for running models locally with CPU and GPU backends.pick this instead when local model execution matters more than hosted-provider and agent abstractions.

What people are saying

  1. [github-trending] 0xPlaygrounds/rig

Sources

  1. Rig repository and README
  2. Rig 0.42.0 release
  3. Rig migration guide
  4. Rig MCP companion documentation
  5. Postgres vector filter bug report
  6. Responses WebSocket proxy request
  7. Provider feature-gating report

More llm tools reviews

open-knowledge · graphiti · cve-mcp-server · minimind · SillyTavern · Hy4-preview · the whole board →