DEV Community

Alex Spinov
Alex Spinov

Posted on

Unison Has a Free API: The Language Where Code Is Content-Addressed and Dependencies Never Break

Dependency hell. Version conflicts. Breaking changes. What if your language solved all of these by treating code as content-addressed data — like Git, but for functions? That is Unison.

What Is Unison?

Unison is a functional programming language where code is identified by its content hash, not by name or file location. When you write a function, Unison hashes its syntax tree and stores it in a content-addressed codebase. This means:

  • No dependency conflicts: Every version of every function has a unique hash
  • No broken builds: Updating a dependency never breaks existing code
  • Distributed computing built in: Send functions to remote nodes by hash
  • Rename freely: Names are just metadata, not identity

The Free Platform

Unison is completely free and open source:

  • Unison Share: Free cloud hosting for Unison libraries
  • UCM: Unison Codebase Manager for local development
  • Unison Cloud: Distributed computing runtime
  • Content-addressed storage: Built-in package management

Quick Start

Install Unison:

brew install unisonweb/unison/ucm
Enter fullscreen mode Exit fullscreen mode

Write your first Unison code:

-- A simple function
greet : Text -> Text
greet name = "Hello, " ++ name ++ "!"

-- List operations with pattern matching
firstOrDefault : a -> [a] -> a
firstOrDefault default = cases
  []      -> default
  x +: _  -> x
Enter fullscreen mode Exit fullscreen mode

Abilities (algebraic effects):

-- Define custom effects
structural ability Store v where
  get : v
  put : v -> ()

counter : Nat ->{Store Nat} Nat
counter n =
  current = Store.get
  Store.put (current + n)
  current + n
Enter fullscreen mode Exit fullscreen mode

Why Developers Choose Unison

A data engineering team maintained 50+ Python scripts with complex dependency trees. Every pip upgrade was a gamble — updating one package could break three others. After rewriting their core pipeline in Unison, dependency conflicts disappeared entirely. Each function had a unique hash, and updating one function never affected any other.

Who Is This For?

  • Distributed systems developers tired of deployment complexity
  • Functional programming enthusiasts wanting the next paradigm shift
  • Teams suffering from dependency hell in large codebases
  • Language enthusiasts who want to see what programming could look like

Try Unison

Unison reimagines how code is stored, shared, and deployed. If dependency management and deployment complexity are your biggest pain points, Unison offers a fundamentally different approach.

Need help with distributed systems or data pipelines? I build custom developer tools — reach out to discuss your project.


Found this useful? I publish daily deep-dives into developer tools and APIs. Follow for more.

Top comments (0)