# Install typical with Homebrew, Nix

Data interchange with algebraic data types. Version 0.16.0 via Homebrew; verified 2026-07-09. Also installable with nix: nix profile install nixpkgs#typical.

## 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
- **Version:** 0.16.0
- **Source summary:** Data interchange with algebraic data types
- **Homepage:** <https://github.com/stepchowfun/typical>
- **Repository:** <https://github.com/stepchowfun/typical>
- **Last updated:** 2026-07-09T08:51:38Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- typical (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.16.0
## 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

## 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


## Combined YAML source

View the package source record on GitHub. [combined/typical.yml](https://github.com/mxcl/pkgdb/blob/main/combined/typical.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
