# Install typical with Homebrew, Nix

Data interchange with algebraic data types. Version 0.15.0 via Homebrew; verified 2026-04-22.

## Install

```sh
sudo av install brew:typical
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install typical
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#typical
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ty/typical/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:typical
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/typical>
- **Version:** 0.15.0
- **Source summary:** Data interchange with algebraic data types
- **Homepage:** <https://github.com/stepchowfun/typical>
- **Repository:** <https://github.com/stepchowfun/typical>
- **Upstream docs:** <https://github.com/stepchowfun/typical#readme>
- **License:** MIT
- **Source archive:** <https://github.com/stepchowfun/typical/archive/refs/tags/v0.15.0.tar.gz>
- **Last updated:** 2026-04-22T21:03:24Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- typical (cli)
- typical (alias)

## Build dependencies

- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.15.0
- Package-manager updated: 2026-04-22
- Local data: ok
- Upstream repository: https://github.com/stepchowfun/typical
- Upstream latest detected: v0.15.0 (current)
## Project history and usage

Typical is a data-interchange and serialization framework centered on algebraic data types. It defines schemas, then generates serialization and deserialization code for supported languages.

### Project history

The public repository was created in March 2021. Its README presents Typical as a comparison point to Protocol Buffers and Apache Thrift, but with a type system emphasizing non-nullable values, exhaustive pattern matching, and safe schema evolution through asymmetric fields.

The README says the design was informed by experience using Protocol Buffers at Google and Apache Thrift at Airbnb, while clarifying that Typical is not an officially supported product of either company.

### Adoption history

Official adoption evidence is limited. The batch input lists Homebrew and Nix packages, and GitHub release metadata shows continued releases into 2026, including v0.15.0 in April 2026.

### How it is used

Users write a schema file such as `types.t`, run commands like `typical format` or `typical generate`, and produce Rust and TypeScript or JavaScript-facing code for binary-compatible message storage or service boundaries.

### Why package nerds care

Typical is interesting to package-focused developers because it packages an opinionated IDL/code-generation stack as a CLI. It sits in the small space between mainstream schema compilers and language-specific serialization libraries, appealing to users who want stronger ADT semantics in generated code.

### Timeline

- 2021: Public GitHub repository created.
- 2023: v0.9.x releases published.
- 2024: v0.10.0 through v0.12.1 releases published.
- 2026: v0.15.0 published.

### Related projects

- The README explicitly compares Typical with Protocol Buffers and Apache Thrift, while positioning its type-system choices closer to languages such as Rust and Haskell.

### Sources

- <https://api.github.com/repos/stepchowfun/typical>
- <https://api.github.com/repos/stepchowfun/typical/releases>
- <https://github.com/stepchowfun/typical#readme>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** typical
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - typical: normalized package name match | nixpkgs package indexes: pkgs/by-name/ty/typical/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [protobuf](https://www.automicvault.com/pkg/brew/protobuf/) - Shares av.db curated category or tags: cli, data, data-interchange, serialization.
- [colfer](https://www.automicvault.com/pkg/brew/colfer/) - Shares av.db curated category or tags: cli, data, serialization.
- [lcm](https://www.automicvault.com/pkg/brew/lcm/) - Shares av.db curated category or tags: cli, data, serialization.
- [avro-c](https://www.automicvault.com/pkg/brew/avro-c/) - Shares av.db curated category or tags: cli, data, serialization.
- [avro-cpp](https://www.automicvault.com/pkg/brew/avro-cpp/) - Shares av.db curated category or tags: cli, data, serialization.
- [avro-tools](https://www.automicvault.com/pkg/brew/avro-tools/) - Shares av.db curated category or tags: cli, data, serialization.
- [mcap](https://www.automicvault.com/pkg/brew/mcap/) - Shares av.db curated category or tags: cli, data, serialization.
- [adios2](https://www.automicvault.com/pkg/brew/adios2/) - Shares av.db curated category or tags: cli, data.
- [beanquery](https://www.automicvault.com/pkg/brew/beanquery/) - Local package facts share a topical domain. Shared terms: cli, data.

## Combined YAML source

View the package source record on GitHub. [combined/typical.yml](https://github.com/automic-vault/db/blob/main/combined/typical.yml)


## Sources

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