Integración Enterprise (Java / Kotlin / JNI)

Conecta aplicaciones Spring Boot o aplicaciones Nativas en Android mediante JNA. Saltar la máquina virtual de Java directo a Bare-Metal.

1

Dependencias (Maven/Gradle)

La JVM (Java Virtual Machine) es un cajón cerrado. Para poder usar el C-ABI rapidísimo de Rust, Java usa una navaja suiza llamada JNA (Java Native Access).
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>5.14.0</version>
</dependency>

💡 Para que lo entiendas súper fácil: La JVM es como una guardería segura llena de cosas colchonadas. Rust es una fábrica industrial afuera. JNA es la ventana mágica por donde Java le manda paquetitos a la fábrica para que haga el trabajo duro del túnel criptográfico.

2

Mapear y Disparar

Usamos una interface para mapear el DLL y simplemente enviamos arrays de `byte[]`.
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;

public class DemoJava {
    public interface PoNative extends Library {
        PoNative INSTANCE = Native.load("po_c", PoNative.class);
        Pointer po_client_new(String bind, String remote);
        int po_client_send(Pointer client, byte[] data, long len);
        void po_client_free(Pointer client);
    }

    public static void main(String[] args) {
        Pointer client = PoNative.INSTANCE.po_client_new("0", "127.0.0.1:4433");
        
        byte[] payload = "E2EE desde Spring Boot".getBytes();
        PoNative.INSTANCE.po_client_send(client, payload, payload.length);
        
        PoNative.INSTANCE.po_client_free(client);
    }
}