Skip to content

yglukhov/jnim

Folders and files

NameName
Last commit message
Last commit date
Apr 28, 2023
Feb 2, 2025
Feb 2, 2025
Jun 27, 2016
May 5, 2015
Feb 2, 2025
May 13, 2020
Apr 28, 2023

Repository files navigation

jnim - JNI library for Nim language Build Status nimble

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 nimble 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