Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Idris
  3. idris-jvm

idris-jvm

NOASSERTIONIdrisv0.8.6

A JVM bytecode backend for Idris 2, enabling Idris programs to run on the Java Virtual Machine.

Visit WebsiteGitHubGitHub
483 stars29 forks0 contributors

What is idris-jvm?

Idris JVM is a JVM bytecode backend for the Idris 2 programming language, allowing Idris 2 programs to be compiled and executed on the Java Virtual Machine. It extends the Idris 2 compiler to target the JVM platform, enabling functional programming with dependent types in JVM-based environments. This solves the problem of running Idris code outside its native runtime, opening up integration with Java ecosystems.

Target Audience

Idris 2 developers who want to deploy their functional programs on the JVM, and Java developers interested in exploring dependent types and purely functional programming within JVM environments.

Value Proposition

Developers choose Idris JVM to leverage Idris 2's advanced type system and functional paradigms on the widely adopted JVM platform, enabling interoperability with Java libraries while maintaining type safety and expressiveness.

Overview

Idris on the JVM

Use Cases

Best For

  • Compiling Idris 2 programs to run on JVM servers
  • Integrating Idris code with existing Java applications
  • Teaching dependent types and functional programming in JVM-based courses
  • Building type-safe systems that must interoperate with Java libraries
  • Deploying Idris applications in cloud environments that support JVM
  • Creating JVM executables from Idris for cross-platform distribution

Not Ideal For

  • Teams primarily using Java or Kotlin who need minimal learning curve and extensive library support without functional programming overhead
  • Projects requiring real-time performance or low-latency where JVM startup and bytecode interpretation might be bottlenecks
  • Environments where JVM is not available, such as embedded systems or browser-based applications needing JavaScript output
  • Startups or rapid prototyping scenarios where abundant community resources and pre-built solutions are critical

Pros & Cons

Pros

JVM Bytecode Generation

Compiles Idris 2 source code directly to JVM bytecode, enabling execution on any JVM without additional runtime, as demonstrated by the standalone executable output in the example.

Full Idris 2 Support

Provides complete support for Idris 2's dependent types and purely functional programming, allowing advanced type-driven development as highlighted in the project philosophy.

Java Interoperability

Enables Idris programs to interact with existing Java libraries and frameworks, facilitating integration with JVM ecosystems, a key feature mentioned in the description.

Standalone Executables

Compiles Idris programs into executable JAR files or class files, simplifying deployment in JVM-based environments, as shown in the run command example.

Cons

Complex Installation Process

Setup requires manual extraction, PATH configuration, and environment variable setting (IDRIS2_PREFIX), which is more involved than standard package managers or native Idris installs.

Limited Ecosystem and Community

Idris 2 is a niche language, so libraries, tools, and community support are sparse compared to mainstream JVM languages like Java or Scala, potentially hindering development.

Documentation Fragmentation

Relies on separate documentation sites for Idris JVM and Idris 2, which can make learning and troubleshooting more challenging, as noted in the README links.

Potential Feature Gaps

As a backend extension, it might not fully support all Idris 2 language features or JVM-specific optimizations, leading to incomplete implementations or performance trade-offs.

Frequently Asked Questions

Quick Stats

Stars483
Forks29
Contributors0
Open Issues3
Last commit3 days ago
CreatedSince 2016

Tags

#java-interop#functional-programming#idris#java#bytecode-generation#compiler-backend#jvm#dependent-types

Links & Resources

Website

Included in

Idris411
Auto-fetched 8 hours ago

Related Projects

idris-erlangidris-erlang

Erlang Backend for Idris Compiler

Stars187
Forks15
Last commit9 years ago
idris-malfunctionidris-malfunction

Experimental Malfunction backend for Idris

Stars81
Forks6
Last commit8 years ago
idris-llvmidris-llvm

Idris LLVM codegen factored out

Stars81
Forks13
Last commit9 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub