Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Embedding Rust in Java

License

NotificationsYou must be signed in to change notification settings

drrb/java-rust-example

Repository files navigation

An example project showing how to call into Rust code from Java.

OSXLinuxWindows
OSX Build StatusLinux Build StatusWindows Build status

Requirements

  • Java 7+
  • Rust (tested with 1.0, nightly)

Contents

So far, the project contains

  • Rust code and Java code
  • A Java interface to the Rust code, usingJNA
  • A script to build the Rust code into a library and put it on the classpath where JNA can find it
  • Examples of passing strings, structs, and callback functions between Java and Rust

Getting Started

The best place to start looking at the examples is in the test code(GreetingsTest.java).The test contains lots of executable examples of calling into Rust code fromJava. From the test, you can navigate to theJava codeand theRust code. Theimplementation is heavily commented to explain it.

So far, it contains examples of the following (click the links to see!):

Building and Running the Tests

To build the project, and run the tests, use Maven. This will build a jarcontaining the Rust code and the Java code. This assumes you have Rustinstalled, and on the path.

$ mvn package

You can then run the jar that is produced to see the integration work.

$ java -jar target/greeter.jar JohnHello from Rust, John

Platform Support

This project is tested on OSX, Ubuntu, and Windows. It should also work on any 32 bit or 64 bit Gnu/Linux system.

Limitations

Some of the examples leak memory. Any memory that is allocated in Rust needs to be freed manually because it's not managed by JNA. Some examples pass objects back into Rust to be dropped for this reason, but we don't clean up everything properly (strings, for example). This is almost certainly not a limitation of Rust, but a limitation of my current understanding of Rust.

License

Java/Rust ExampleCopyright (C) 2015 drrb

This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General Public Licensealong with this program. If not, seehttp://www.gnu.org/licenses/.

About

Embedding Rust in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp