A JVM bytecode backend for Idris 2, enabling Idris programs to run on the Java Virtual Machine.
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.
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.
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.
JVM bytecode back end for Idris
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
Provides complete support for Idris 2's dependent types and purely functional programming, allowing advanced type-driven development as highlighted in the project philosophy.
Enables Idris programs to interact with existing Java libraries and frameworks, facilitating integration with JVM ecosystems, a key feature mentioned in the description.
Compiles Idris programs into executable JAR files or class files, simplifying deployment in JVM-based environments, as shown in the run command example.
Setup requires manual extraction, PATH configuration, and environment variable setting (IDRIS2_PREFIX), which is more involved than standard package managers or native Idris installs.
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.
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.
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.