GitPedia

Idris jvm

JVM bytecode back end for Idris

From mmhelloworld·Updated June 14, 2026·View on GitHub·

[Idris 2](https://idris-lang.org/) is a purely functional programming language with first class types. This repository provides Idris 2 compiler targeting JVM bytecode so that Idris 2 compiler and Idris 2 programs can run on the JVM. The project is written primarily in Idris, distributed under the BSD 3-Clause "New" or "Revised" License license, first published in 2016. Key topics include: idris, java, jvm.

Latest release: developmentDevelopment Build
June 14, 2026View Changelog →

Idris 2 for JVM

Build Status

Idris 2 is a purely functional programming language
with first class types. This repository provides Idris 2 compiler targeting JVM bytecode so that Idris 2 compiler and Idris 2 programs can run on the JVM.

Alt

Install

  • Download the latest Idris 2 JVM release from releases page.
  • Extract the archive and add idris2 launcher script directory <EXTRACTED_DIRECTORY_ROOT>/exec to PATH.
  • Create an environment variable IDRIS2_PREFIX pointing to <EXTRACTED_DIRECTORY_ROOT>/env

Example

helloworld.idr

idris
module Main data Tree a = Leaf | Node (Tree a) a (Tree a) inorder : Tree a -> List a inorder Leaf = [] inorder (Node left a right) = inorder left ++ [a] ++ inorder right tree : Tree String tree = Node (Node (Node Leaf "3" Leaf) "+" (Node Leaf "7" Leaf)) "/" (Node Leaf "2" Leaf) main : IO () main = printLn $ inorder tree

Compile

idris2 helloworld.idr -o main

Run

shell
% build/exec/main ["3", "+", "7", "/", "2"]

Documentation

License

This repository extends idris-lang/Idris2 repository with JVM backend. Files from idris-lang/Idris2 are covered by that repository's license.
All other files from this repository are covered by BSD-3-Clause License. See LICENSE.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from mmhelloworld/idris-jvm via the GitHub API.Last fetched: 6/25/2026