Automic VaultAutomic Vault

brew

Install io with Homebrew, MacPorts, Nix

Small prototype-based programming language. Version 2017.09.06 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install io

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install Io

MacPorts ports tree · lang/Io/Portfile · source: api.github.com

Linux

Nixverified · 92%
nix profile install nixpkgs#io

nixpkgs package indexes · pkgs/by-name/io/io/package.nix · source: api.github.com

overview

Package summary

Small prototype-based programming language

Commands and aliases

  • io
  • io_static

history

Project history and usage

Io is a small dynamic prototype-based programming language built around message passing, prototype objects, runtime-inspectable code, and a compact VM. Its official materials place it in the lineage of Smalltalk, Self, NewtonScript, Act1, Lisp, and Lua, with an emphasis on conceptual unification rather than surface syntax.

Project history

The official timeline says Steve Dekorte began Io in March 2002 as a minimal prototype-based language, with early public releases and a programming guide appearing through the Yahoo Group community shortly afterward. In its first year, Io gained actors, coroutines, incremental garbage collection, weak links, networking, and a quickly expanding addon system.

Io entered programming-language culture through its compact object model and message-tree semantics. The official timeline records a Lua Workshop talk and an ACM Dynamic Languages Symposium presentation in 2005, then source-history moves from email patches to a public DARCS repository, git hosting, and GitHub.

The project continued to evolve through build-system and runtime changes, including a CMake transition in 2010, Eerie package-manager work under the IoLanguage organization from 2017, and a later WebAssembly/WASI direction with JavaScript bridging. The Homebrew package is therefore attached to a language with a long experimental runtime history, not just a frozen curiosity.

Adoption history

Io never became a mainstream application language, but it became memorable among programming-language enthusiasts because its tiny syntax exposes prototypes, messages, futures, actors, and code-as-data ideas directly. Its package-manager presence in Homebrew, MacPorts, and Nix reflects that role as a language runtime people install to explore or preserve a distinctive design.

Adoption is best understood as educational and exploratory. Io is the kind of package that appears in language surveys, polyglot exercises, and prototype-object discussions because it shows a coherent alternative to class-based object systems and keyword-heavy syntax.

How it is used

Users run the `io` interpreter or build the runtime to experiment with message sends, prototype cloning, slots, blocks, addons, and concurrency constructs. The official guide and reference are central because the language's unusual semantics are easier to understand through examples than through command flags alone.

Why package nerds care

Io matters to package nerds because it preserves a compact, radical language design in executable form. It also has the classic packaging shape of a niche language runtime: VM, interpreter, standard library, historical native addons, documentation, tags, branches, and compatibility questions across Unix-like systems.

Its significance is disproportionate to install counts. A package manager carrying Io lets users reproduce examples from programming-language books and discussions, inspect a prototype-based VM, and compare the packaging demands of small language runtimes against larger ecosystems.

Timeline

  • 2002-03: Steve Dekorte begins work on Io.
  • 2002-04: Early public releases and a programming guide appear through the early community.
  • 2005-07: Io is presented at the Lua Workshop.
  • 2005-10: Io is presented at the ACM Dynamic Languages Symposium.
  • 2007-03: Source history moves from DARCS to git.
  • 2008-02: The Io repository appears on GitHub.
  • 2010-05: The build moves to CMake.
  • 2017-11: Eerie package-manager work is rewritten under the IoLanguage organization.
  • 2026: WASM/WASI work, stackless evaluation, resumable exceptions, and JavaScript bridging are recorded in the official timeline.

Related projects

  • Self and Smalltalk are core influences on Io's object and message model.
  • NewtonScript, Act1, Lisp, and Lua are cited by the project as design influences.
  • Eerie is the related Io package manager recorded in the official timeline.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:programming language

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 8 platform targets.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
iocliglobal executable
io_staticcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version2017.09.06
manager updated
local dataok
upstreamcurrent
latest detected2017.09.06

https://github.com/IoLanguage/io

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:io
Version2017.09.06
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/io
Homepagehttp://iolanguage.com/
Repositoryhttps://github.com/IoLanguage/io
Upstream docshttps://iolanguage.org/guide/guide.html
LicenseBSD-3-Clause
Source archivehttps://github.com/IoLanguage/io/archive/refs/tags/2017.09.06.tar.gz
Build dependenciescmake, pkgconf
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameio
Version Scheme0
Revision1
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

io

nix profile install nixpkgs#io
  • normalized package name match
  • Matched by: Io
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/io/io/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
MacPorts95%

Io

sudo port install Io
  • normalized package name match
  • Matched by: Io
MacPorts ports tree · api.github.com · MacPorts ports tree: lang/Io/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Combined YAML source

View the package source record on GitHub.

combined/io.yml

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment