Skip to content

Releases: matchylabs/matchy-java

v0.3.0

18 Dec 03:15

Choose a tag to compare

What's New

HTTP Auto-Update

Databases can now automatically update from a remote URL. Embed an update URL when building, then enable auto-update when opening:

// Build with update URL
builder.setUpdateUrl("https://example.com/threats.mxy")
       .save(Paths.get("threats.mxy"));

// Open with auto-update enabled
OpenOptions options = OpenOptions.defaults()
    .autoUpdate(true)
    .updateIntervalSecs(3600);
Database db = Database.open(path, options);

Database Validation

Validate database files before opening:

Database.validate(Paths.get("threats.mxy"), ValidationLevel.STRICT);

Schema Validation

Enable ThreatDB schema validation when building:

builder.setSchema("threatdb")
       .add("1.2.3.4", Map.of("tlp", "RED", "confidence", 95));

Case-Insensitive Matching

builder.setCaseInsensitive(true);

Reload Callbacks

Get notified when a watched database reloads:

OpenOptions options = OpenOptions.defaults()
    .autoReload(true)
    .reloadCallback(event -> System.out.println("Reloaded: " + event));

Other Additions

  • Database.hasAutoUpdate() — Check if auto-update feature is available
  • Database.getVersion() — Get native library version
  • Database.getUpdateUrl() — Get embedded update URL
  • Low-level Entry / EntryData API for typed data access

Native Library

Updated to matchy b743209 with thread safety fixes, SIMD safety improvements, and Windows compatibility fixes.

v0.2.0

05 Dec 01:18

Choose a tag to compare

What's New

Extractor API

New Extractor class for extracting Indicators of Compromise (IoCs) from text:

try (Extractor extractor = Extractor.create(ExtractFlags.ALL)) {
    List<ExtractedMatch> matches = extractor.extract(
        "Contact user@example.com at 192.168.1.1 about evil.com");
    
    for (ExtractedMatch match : matches) {
        System.out.println(match.getItemType() + ": " + match.getValue());
    }
}

Supported extraction types:

  • Domain names
  • Email addresses
  • IPv4 and IPv6 addresses
  • File hashes (MD5, SHA1, SHA256, SHA384, SHA512)
  • Cryptocurrency addresses (Bitcoin, Ethereum, Monero)

GitHub Packages

This release is now published to GitHub Packages. Add to your pom.xml:

<repositories>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/matchylabs/matchy-java</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.matchylabs</groupId>
    <artifactId>matchy-java</artifactId>
    <version>0.2.0</version>
</dependency>

Note: GitHub Packages requires authentication. Configure ~/.m2/settings.xml with a GitHub token that has read:packages scope.

matchy-java v0.1.0

04 Dec 21:35

Choose a tag to compare

Initial release of matchy-java - Java wrapper for matchy.

Features

  • JNA bindings to native matchy library
  • Database class for opening and querying .mxy databases
  • DatabaseBuilder for creating databases programmatically
  • QueryResult, DatabaseStats, OpenOptions wrapper classes
  • Fat JAR with native libraries for Linux (x86_64, aarch64), macOS (aarch64), and Windows (x86_64)

Usage

Add the JAR to your classpath. The native library is bundled and loads automatically.