Jul 20, 2023

OCaml-Java library interface

This is a very preliminary release of CamlJava, an OCaml/Java interface based on the following schema

     Caml/C interface       JNI Java Native Interface   Caml <------------------> C <-----------------------------> Java

Currently, CamlJava provides a low-level, weakly-typed OCaml interface very similar to the JNI. Java object references are mapped to an abstract type, and various JNI-like operations are provided to allow Java method invocation, field access, and more. A basic callback facility allowing Java code to invoke methods on Caml objects is also provided, although some stub Java code must be written by hand.

In the future, a higher-level, strongly-typed interface will be provided, whereas Java classes are mapped directly to Caml classes. This raises fairly delicate type mapping issues, though, so don’t hold your breath.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler