/jnim

Nim - Java bridge

Primary LanguageNimMIT LicenseMIT

jnim - JNI library for Nim language nimble

Build Status

Native language integration with Java VM has never been easier!

import jnim

# Import a couple of classes
jclass java.io.PrintStream of JVMObject:
  proc println(s: string)
jclass java.lang.System of JVMObject:
  proc `out`: PrintStream {.prop, final, `static`.}

# Initialize JVM
initJNI()
# Call!
System.`out`.println("This string is printed with System.out.println!")

Overview

The list of the main features:

  • API splitted in two parts: low and high level.
  • It supports Java inheritance and generics.

The documentation is coming soon. Now you can look the examples in the tests directory. For example, tests/test_java_lang.nim and tests/test_java_util.nim shows how to use high level API.

If you want to run the tests, use nim test command.

Installation

nimble install jnim

Thanks

  • The current version of the library is a complete rewrite done by @vegansk.
  • Also thanks a lot to all the contributors