Releases: matchylabs/matchy-java
v0.3.0
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 availableDatabase.getVersion()— Get native library versionDatabase.getUpdateUrl()— Get embedded update URL- Low-level
Entry/EntryDataAPI for typed data access
Native Library
Updated to matchy b743209 with thread safety fixes, SIMD safety improvements, and Windows compatibility fixes.
v0.2.0
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
Initial release of matchy-java - Java wrapper for matchy.
Features
- JNA bindings to native matchy library
Databaseclass for opening and querying .mxy databasesDatabaseBuilderfor creating databases programmaticallyQueryResult,DatabaseStats,OpenOptionswrapper 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.