All Projects → brandonbloom → terra-java

brandonbloom / terra-java

Licence: MIT license
Lua/Terra + Java Native Interface

Programming Languages

Terra
27 projects
perl
6916 projects
java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to terra-java

jni
V wrapper around the C Java Native Interface
Stars: ✭ 15 (-25%)
Mutual labels:  jni, java-native-interface
monero-java
A Java library for using Monero
Stars: ✭ 76 (+280%)
Mutual labels:  jni
Sand
Using JNI to achieve Sobel operator image edge detection使用JNI实现Sobel算子图像边缘检测,支持kotlin https://github.com/Jomes/sand
Stars: ✭ 186 (+830%)
Mutual labels:  jni
Android Disassembler
Disassemble ANY files including .so (NDK, JNI), Windows PE(EXE, DLL, SYS, etc), linux binaries, libraries, and any other files such as pictures, audios, etc(for fun)files on Android. Capstone-based disassembler application on android. 안드로이드 NDK 공유 라이브러리, Windows 바이너리, etc,... 리버싱 앱
Stars: ✭ 250 (+1150%)
Mutual labels:  jni
Jfasttext
Java interface for fastText
Stars: ✭ 193 (+865%)
Mutual labels:  jni
JNI RSA Sign
通过JNI实现验证App签名获取公钥
Stars: ✭ 86 (+330%)
Mutual labels:  jni
Jpegkit Android
Efficient JPEG operations for Android without the risk of an OutOfMemoryException.
Stars: ✭ 154 (+670%)
Mutual labels:  jni
sentencepiece-jni
Java JNI wrapper for SentencePiece: unsupervised text tokenizer for Neural Network-based text generation.
Stars: ✭ 26 (+30%)
Mutual labels:  jni
wgpu-mc
Rust-based replacement for the default Minecraft renderer
Stars: ✭ 254 (+1170%)
Mutual labels:  jni
Easyincrementalupdate
Android差分补丁库,通过native层合并APK,实现增量更新升级,让你更新的APK更小。
Stars: ✭ 233 (+1065%)
Mutual labels:  jni
Relinker
A robust native library loader for Android.
Stars: ✭ 2,612 (+12960%)
Mutual labels:  jni
Adi
ADI(Android Debug Intensive) 是通过 JVMTI 实现的 Android 应用开发调试的增强工具集,目前主要提供性能相关的监控能力。
Stars: ✭ 194 (+870%)
Mutual labels:  jni
clojure-rust-graalvm
An example of Clojure program calling a Rust library, all combined into one executable using GraalVM.
Stars: ✭ 113 (+465%)
Mutual labels:  jni
Xcrash
🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
Stars: ✭ 2,689 (+13345%)
Mutual labels:  jni
java-cpp-example
Example of using C++ classes from Java. Showcases SWIG, JNA and JNI
Stars: ✭ 135 (+575%)
Mutual labels:  jni
Scapix
Scapix Language Bridge
Stars: ✭ 171 (+755%)
Mutual labels:  jni
J4rs
Java for Rust
Stars: ✭ 210 (+950%)
Mutual labels:  jni
Jxnet
Jxnet is a Java library for capturing and sending custom network packet buffers with no copies. Jxnet wraps a native packet capture library (libpcap/winpcap/npcap) via JNI (Java Native Interface).
Stars: ✭ 26 (+30%)
Mutual labels:  jni
Libbulletjme
A JNI interface to Bullet Physics and V-HACD
Stars: ✭ 55 (+175%)
Mutual labels:  jni
ffmpeg4java
FFmpeg4Java provides a JNI wrapper of FFmpeg library
Stars: ✭ 21 (+5%)
Mutual labels:  jni

Terra-Java

Raw JNI too cumbersome? JNA not fast enough? C++ code generators make you sad?

Try Terra-Java!

Abstract

Terra-Java leverages Terra's metaprogramming facilities to enable you to define native JVM extensions with unprecedented ease.

JNI boilerplate is automatically generated during Terra compilation.

Just as Terra can generate native code without a runtime Lua dependency, Terra-Java can generate JVM extensions without a Terra-Java dependency.

Status

This project is a work-in-progress. Some things do not work as advertised yet.

Quick Start

Dependencies & Configuration

Install Terra 2016-03-25 and the JDK, then set the following environment variables:

  • INCLUDE_PATH: Terra looks here for standard C headers.
  • JDK_HOME: Terra-Java looks here for Java headers and libjvm.

To use Terra-Java from your own Terra project, add a pattern for the directory containing terra-java.t to one additional environment variable:

  • TERRA_PATH: Terra's version of LUA_PATH. Use ;; for the default value.

For example:

TERRA_PATH=/some/path/to/terra-java/?.t;;

Build

Compile the Terra-Java support libraries and examples:

./build.sh

Running Examples

Run Terra code that interops with the JVM:

terra ./terra-java/examples/interop.t
terra ./terra-java/examples/extension/native.t

Run JVM code that utilizes native extensions:

java \
  -Djava.class.path=./obj \
  -Djava.library.path=./obj \
  terrajava.examples.extension.Accumulator

Usage

Check out the examples, then see the guide for many more details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].