6 releases

Uses old Rust 2015

0.2.1 Jun 20, 2020
0.2.0 Mar 15, 2019
0.1.3 Sep 17, 2018

#120 in #java

33 downloads per month
Used in panopticon-tui

MIT/Apache

34KB
654 lines

JMX for Rust

A JMX client library for Rust.

This library allows querying Java JMX attributes from a rust project.

Building

The jmx-rust crate is based off of the j4rs crate.

As of version 0.5.1 j4rs is able to locate the JDK automatically.

Tests

Tests work but starting a test JMX server located under tests/jmxserver. This server is then used by the tests to check the library.

For this to work the test server must be compiled and the correct java command must be available in the $PATH:

cd tests/jmxserver
javac TestServer.java
cd ../..

export PATH="/path/to/java/bin:$PATH"
cargo test --features thread-support

Usage

Creating a client:

extern crate jmx;

static JMX_PORT: i32 = 1234;

fn main() {
    // Create a connection to the remote JMX server.
    let url = MBeanAddress::service_url(format!(
        "service:jmx:rmi://localhost:{}/jndi/rmi://localhost:{}/jmxrmi",
        JMX_PORT, JMX_PORT
    ));
    let client = MBeanClient::connect(url)
        .expect("Failed to connect to the JMX server");

    // Fetch some attribute from the server.
    let threads: i32 = client.get_attribute("FOO:name=ServerBean", "ThreadCount").unwrap();
}

Dependencies

~3.5–5MB
~62K SLoC