Welcome to Leema, a concurrent, error-tolerant, strongly-typed functional programming language. Leema’s primary use case is application servers, but is not so specialized that it couldn’t be used for other cases as well. Leema is implemented with Rust; you can find the code on Github.

func main ->
    print("hello world!\n")

Notable Features

Error Handling

Have you read or watched Scott Wlaschin’s description of Railway Oriented Programming? Leema takes this sort of approach and builds it into the language. The result is something that is somewhere in between exceptions and return values. Read more


Leema provides linear representation of concurrent operations with language support of futures. Read more

Domain Types

Domain Types are a way of constraining an existing type to a particular set of values. Like a type alias, but with more constraints. Read more

Pattern Matching

Pattern matching makes code and conditional logic very readable and is a central part of leema’s design.

func factorial:Int :: i:Int
|1 -> 1
|_ -> i * factorial(i-1)

Ready to get started?

  1. Setup Leema
  2. Leema Basics