Meet Eta.

A powerful programming language to build concurrent & distributed systems on the JVM.

Getting Started




What is Eta?

Eta is a pure, lazy, strongly typed functional programming language on the JVM. It brings two big ecosystems, the JVM and Haskell, together. This allows you to harness the best of both ecosystems to build your applications quickly and effectively. Eta's concurrency support helps you to build highly scalable systems.

Why Eta?


Robust Interoperability

Eta has a strongly-typed Foreign Function Interface (FFI) that allows you to safely interoperate with Java.


Ultra Type Safety

Eta has global type inference, giving you a dynamic language experience, but with a strong typing hidden underneath.


Scalable Concurrency Support

Eta offers a wide range of strategies for handling concurrency including Software Transaction Memory (STM), MVars, and Fibers.

Let's Build
a Web Service!

Using the powerful and type-safe Servant web framework, we define our API as a type and the handler types for each endpoint are automatically generated and conversions happen automatically.

Run the server. Etlas will make sure the dependencies are properly included on the JVM classpath.

Consume your webservice using your browser or CURL. Want to dig in more? Check the full web service tutorial here.

Get Involved

Coming Soon

Eta IntelliJ

Eta plugin for IntelliJ IDEA


Java FFI Bindings Generator

Eta on Android

Write Android Apps with Eta

Eta Fibers

Lightweight, Cooperative Threads

Twitter Feed

Conference Talks

Beauty and the beast Haskell on JVM

Lambda Days 2018

Operation Haskell + Scala

ScalaMatsuri - 2018

Eta Fibers

Functional Conf - 2017