mrkeyoor.com_
Sat 07 Nov 02:04 UTC
Dev Toolsevaluationupdated 26 Oct 2026

iii review

iii is a runtime built around workers, functions, and triggers. Its README describes a shared catalogue through which services and agents discover and call functions. The engine is written in Rust, with SDKs for Node.js, Python, Rust, and Go. Our recorded run evaluated dependency installation and workspace commands, not a deployed runtime.

+50stars / 7d
Verdict

iii merits a bounded evaluation for teams that want services and agents to share a worker-function-trigger model. Our 2026-10-10 run at commit 5c000f8 established successful dependency installation, followed by build-stage stops caused by a missing mint executable. It established neither failing test cases nor a broken runtime. Before adoption, resolve the development prerequisites, check an installed engine separately, review the split licensing, and test the recovery paths relevant to your application. Open issue reports provide investigation leads, not confirmed findings from our run.

We ran it

Lab card: what happened when we ran iiiScreenshot of iii (iii.dev)
Install✓ · 14s926 packages · 1250 MB
Build✗ · 3s
Tests✗ · 2sran, no count parsed
Repo3457 files~403,488 lines of source · 161.7 MB · 29 CI workflows

Answers from our run

Does iii build from source?

Dependencies installed in 14 seconds (926 packages), and the build failed. We cloned commit 5c000f8 into a clean Debian container with 3 CPUs and no project-specific setup.

Do iii's tests pass?

No. The project's own test command exited unsuccessfully after 2 seconds, and its output did not expose an individual test count.

Who should not use iii?

Teams requiring an Apache-2.0 engine: iii's engine uses Elastic License 2.0, while the SDKs, CLI, console, documentation, and website use Apache License 2.0 according to the pinned README.

What are the alternatives to iii?

Dapr, Temporal. iii merits a bounded evaluation for teams that want services and agents to share a worker-function-trigger model.

Setup2/5Limited verification: dependency installation succeeded on 2026-10-10, but build and test commands stopped at missing `mint`; the log also shows a Node version mismatch. No installed-binary check is supplied.
Docs3/5Documented basis for evaluation: supplied sources explain primitives, SDKs, worker ownership, and licensing. Release, checkout, and live documentation scopes differ, and the setup path was not validated.
Community2/5Limited support: the release extract names contributors and the issue listing shows activity. Neither star counts nor the supplied extracts establish adoption or measured support responsiveness.
Maturity2/5Major verification gaps: release notes document fixes and open issues report operational problems, but no runtime workload or recovery test was performed in the recorded run.

Who it’s for

Platform teams evaluating a shared function catalogue for services written in several languages.
Application teams prepared to register functions and declare triggers through iii's worker model.
Agent builders exploring the README's model of discovering and adding capabilities at runtime.
Contributors willing to configure the monorepo's development prerequisites before evaluating individual components.

Who it’s NOT for

Teams requiring an Apache-2.0 engine: iii's engine uses Elastic License 2.0, while the SDKs, CLI, console, documentation, and website use Apache License 2.0 according to the pinned README.
Buyers who require demonstrated deployment reliability from this review: our run did not exercise the engine, recovery behavior, or application workloads.
Teams that cannot investigate reported queue, registration, and observability problems before adoption.
Applications whose existing direct integrations already meet their needs and do not justify introducing a shared runtime.

Setup reality

In our recorded run on 2026-10-10 at commit 5c000f86745ce81db5336b13b54f1cc724f3e79f, dependency installation exited successfully after 13.676 seconds, rounded to 14 seconds in the summary. The dependency summary records 926 packages and 1,250 MB; pnpm's installation output separately reports 925 packages added. These are different recorded counts, not verified counts of unique dependencies or tested packages.

The build command exited 1 after 2.743 seconds, and the test command exited 1 after 2.473 seconds. Both encountered docs:build: sh: 1: mint: not found. Turbo reported 0 successful tasks out of 6 in each tail. Those are task results, not individual test results. The supplied output does not establish that any test cases ran.

The raw output identifies Node v20.20.2 and pnpm 10.19.0, with a website warning requiring Node >=22.12.0. The recorded image label, lab-node:22, therefore does not establish the runtime version. The missing mint executable is the explicit stopping error; the Node warning is a separate environment mismatch, not a proven cause of that failure.

The scan records 3,457 files, approximately 403,488 source lines, a 161.7 MB checkout, 29 CI workflow files, and a workspace configuration. It detected no Dockerfile, Compose file, or top-level tests directory. Those scan results do not prove that containers or tests are unavailable. No installed iii binary check, runtime workload, or security audit result is supplied.

A shared catalogue is the reason to evaluate iii

iii asks teams to describe capabilities as workers, functions, and triggers. A worker registers with the engine; a function is a named unit of work such as orders::validate; a trigger describes what invokes it. The pinned README lists direct calls, HTTP endpoints, cron schedules, queue subscriptions, state changes, and stream events as trigger examples.

According to that README, workers join a live catalogue, other workers receive notifications, and applications and agents use the same function calls. This is a useful model to evaluate when several teams need a common way to expose capabilities. Claims that it removes integration work remain the project's claims. Our run did not measure integration effort, development time, or savings.

The engine is written in Rust, and the README lists SDKs for Node.js, Python, Rust, and Go. It distinguishes engine-owned workers from standalone Compose workers: HTTP, cron, queue, state, pubsub, and bridge belong to the latter group. Describing all of these as built into the engine would obscure what an operator must assemble.

What our recorded run established

Our stored run is dated 2026-10-10 at commit 5c000f86745ce81db5336b13b54f1cc724f3e79f. No new execution was performed for this correction. The recorded configuration specifies 3 CPUs, 8 GB of memory, and the image label lab-node:22. The command output identifies the actual Node runtime as v20.20.2 and pnpm as 10.19.0.

Dependency installation exited 0 after 13.676 seconds, rounded to 14 seconds in the summary. The parser records 926 packages and 1,250 MB of dependency storage; pnpm reports 925 packages added. Neither figure establishes unique dependency coverage, installed engine availability, or passing tests.

The build command exited 1 after 2.743 seconds, rounded to 3 seconds. Its explicit error was docs:build: sh: 1: mint: not found. Turbo reported 0 successful tasks out of 6. Other workspace lifecycle failures in that tail do not establish six independent product defects.

The test command exited 1 after 2.473 seconds, rounded to 2 seconds, while running build prerequisites. It encountered the same missing mint executable. The supplied output contains no individual test results, so whether iii's tests pass remains unestablished by this run.

The website also warned that it requires Node >=22.12.0. That mismatch needs attention when reproducing the workspace commands, but the log does not establish that it caused the missing-executable error. Installing dependencies successfully did not complete the development environment.

The repository scan records 3,457 files, approximately 403,488 source lines, 161.7 MB of checkout storage, and 29 CI workflow files. It detected workspaces but no Dockerfile, Compose file, or top-level tests directory. These are scan observations, not exhaustive statements about supported deployment methods or test locations. There is no supplied installed-binary check, engine build result, measured application workload, or audit result.

Keep the checkout, release, and documentation scopes separate

The supplied release page documents iii 0.22.1. Its change list includes queue configuration restoration at boot, PATH-first binary resolution, RabbitMQ dead-letter inspection channel isolation, sandbox fixes, and observability trace startup fixes. These are release-note statements, not fixes we independently exercised.

That release is not the identity of our measured October checkout. The raw build output includes SDK package version 0.24.6-rc.3, while the supplied documentation landing page displays 0.25.x. Neither establishes the installed engine version because our run contains no installed-engine version check. Advice drawn from these sources must therefore retain its source scope.

The existing example iii worker add should not be treated as the pinned README's current worker-addition instruction. That README instead shows iii trigger -n dev compose::add worker=queue for a running Compose daemon. Before following setup instructions, use documentation that matches the engine and workers you intend to run.

The console described in the pinned README inspects workers, functions, triggers, queues, traces, logs, and live state. We did not start it or verify those views. Likewise, the README describes agents adding workers and discovering functions at runtime; our run did not exercise agent behavior.

Licensing and recovery need separate decisions

The pinned README assigns Elastic License 2.0 to the engine runtime and Apache License 2.0 to the SDKs, CLI, console, documentation, and website. An Apache-licensed SDK does not establish that the engine meets an organization's licensing policy. Review the engine terms for your intended use before committing to the architecture.

The supplied open-issues extract lists reports about RabbitMQ consumer recovery (#1958), an invocation remaining unacknowledged without a dispatch timeout (#1927), and a subscriber-lag warning feeding itself and filling disk (#2072). It also lists trigger-registration and reconnect reports. These are reported behaviors with potentially different version and environment scopes. The issue listing alone does not establish their reproducibility, root causes, or applicability to the measured commit.

Use those reports to choose evaluation cases: disconnect a worker during an invocation, exercise the queue recovery behavior your application needs, and observe logs during subscriber lag. These are proposed next steps, not tests we performed. The issue requesting a private vulnerability-reporting channel does not itself establish a security vulnerability.

Choose by the capability you need

Dapr's supplied README describes a sidecar exposing capabilities through HTTP and gRPC, including service invocation, state management, messaging, and workflows. Evaluate it when that sidecar API model fits your applications. Temporal's supplied README describes resilient workflow execution with automatic handling of intermittent failures and retries. Evaluate it when durable workflows are the central requirement. Neither alternative was benchmarked in our run.

For iii, the useful next step is a small evaluation with a pinned engine and selected workers. First satisfy the documented environment requirements and verify the installed binary. Then exercise one real function and trigger path, followed by the relevant recovery cases. A monorepo dependency install cannot answer those deployment questions.

How to read the scores

Scores describe the supplied evidence, not a certification of product quality. On this five-point rubric, 1 means little usable support for the criterion, 2 means limited support with major verification gaps, 3 means a documented basis for evaluation, 4 requires broader corroboration, and 5 requires extensive verified evidence. Unknown adoption or compatibility does not earn a high score.

Setup receives 2 because dependencies installed but workspace commands stopped before a complete build or test result. Documentation receives 3 because the supplied material explains the model, SDKs, worker split, and licensing, while the setup path was not validated. Community receives 2 because release contributions and issue activity are visible, but adoption and support responsiveness were not measured. Maturity receives 2 because release history is supplied, while our evidence does not establish deployed reliability.

Alternatives

ProjectWhat it isPick it when
Dapr gh↗A distributed application runtime whose README describes sidecar APIs for service communication, state management, messaging, and workflows.Evaluate Dapr when you want application capabilities exposed through a sidecar over HTTP and gRPC. Its supplied README supports that architectural distinction; we did not compare deployment performance or adoption.
Temporal gh↗A durable execution platform whose server executes workflows and handles intermittent failures and retries.Evaluate Temporal when resilient workflow execution and retries are the main requirement. Its supplied README supports that role; our iii run did not measure either platform's recovery behavior.

What people are saying

  1. [github-trending] iii-hq/iii

Sources

  1. iii README
  2. iii 0.22.1 release
  3. iii issue activity
  4. iii engine license
  5. iii documentation

More dev tools reviews

blackbird · czkawka · controller-runtime · openchoreo · terraform-provider-azurerm · figma-console-mcp · the whole board →