GitPedia
gliwka

gliwka/hyperscan-java

Match tens of thousands of regular expressions within milliseconds - Java bindings for Intel's hyperscan 5

23 Releases
Latest: 1y ago
[5.4.11-3.1.0] 2025-04-06v5.4.11-3.1.0Latest
gliwkagliwka·1y ago·April 6, 2025
GitHub

Added

  • New callback API for efficient custom match processing ([#58](https://github.com/gliwka/hyperscan-java/issues/58))
  • Byte-based scanning API for direct operation on byte[] and ByteBuffer without String overhead
  • New `hasMatch` methods for quick existence checking that terminate immediately on first match ([#68](https://github.com/gliwka/hyperscan-java/issues/68))

Performance

  • Reduced memory usage for UTF-8 string mapping by dynamically selecting optimal array type

🐛 Fixed

  • Fixed upstream vectorscan correctness regression on x86 architecture with targeted patch ([#228](https://github.com/gliwka/hyperscan-java/issues/228), [#231](https://github.com/gliwka/hyperscan-java/issues/231))
  • Ensured all native handles are properly reclaimed after database compilation ([#230](https://github.com/gliwka/hyperscan-java/issues/230))
  • Reworked UTF-8 position mapping to handle the mapping correctly in edge cases ([#170](https://github.com/gliwka/hyperscan-java/issues/170))

📋 Changed

  • Removed 255 thread limit for concurrent scanning operations ([#222](https://github.com/gliwka/hyperscan-java/issues/222), [#229](https://github.com/gliwka/hyperscan-java/issues/229))
[5.4.11-3.0.0] 2023-12-03v5.4.11-3.0.0
gliwkagliwka·2y ago·December 2, 2023
GitHub

💥 Breaking

  • Windows support has been dropped due to vectorscan not supporting it

Added

  • Support for ARM64 architecture on Linux and macOS (M1/M2/M3 family of chips)

🐛 Fixed

  • Database instances not reclaimable by GC ([#161](https://github.com/gliwka/hyperscan-java/issues/161)) - thanks [@mmimica](https://github.com/mmimica)!
  • Race condition during tracking of native references on multiple threads ([#158](https://github.com/gliwka/hyperscan-java/issues/158)) - thanks [@mmimica](https://github.com/mmimica)!
  • Expression IDs now can have arbitrary space between them without consuming additional memory ([#163](https://github.com/gliwka/hyperscan-java/issues/163)) - thanks [@mmimica](https://github.com/mmimica)!
  • Removed superflous duplicate call during mapping of expressions in PatternFilter ([#205](https://github.com/gliwka/hyperscan-java/pull/205)) - thanks [@Jiar](https://github.com/Jiar)!
[5.4.0-2.0.0] 2021-03-31v5.4.0-2.0.0
gliwkagliwka·5y ago·March 31, 2021
GitHub

Added

  • New PatternFilter allowing for prefiltering of java regex patterns similar to chimera
  • Windows support
  • Possibility to manually specify expression ids

📋 Changed

  • Moved access to native library from JNA to JavaCPP
  • Removed context object from expressions

🐛 Fixed

  • Lock contention while scanning with high concurrency ([#89](https://github.com/gliwka/hyperscan-java/issues/89))
v1.0.0
gliwkagliwka·6y ago·September 16, 2019
GitHub

📋 Changes

  • Hyperscan v5.1.1 binaries (#48)
  • Java 11 compatibility (#54)
  • Logical combinations (thanks to @swapnilnawale @digitalreasoning for the contribution) (#55)
  • Change from checked to unchecked exceptions to clean up method signature (#53)
v0.4.14
gliwkagliwka·8y ago·May 23, 2018
GitHub

📋 Changes

  • Enforce UTF-8 encoding in the direct mapping library (#43) - thanks to @eliaslevy for this PR!
v0.4.13
gliwkagliwka·8y ago·January 29, 2018
GitHub

This release contains the new hyperscan v4.7.0 binaries

v0.4.12
gliwkagliwka·8y ago·November 18, 2017
GitHub

📋 Changes

  • Segmentation fault when passing null value as expression (#34)
v0.4.11
gliwkagliwka·8y ago·October 4, 2017
GitHub

📋 Changes

  • Error due to reading of structs after call to free (#31)
v0.4.10
cerebuild-botcerebuild-bot·8y ago·September 28, 2017
GitHub

📋 Changes

  • Support for 32-bit Linux
  • New hyperscan binaries (v4.6.0)
  • Updated JUnit and Surefire plugins for testing (works now with the most recent IntelliJ release)
v0.4.8
gliwkagliwka·8y ago·August 7, 2017
GitHub

📋 Changes

  • Add context object to Expression
v0.4.7
gliwkagliwka·8y ago·August 5, 2017
GitHub

📋 Changes

  • Removed "System.out.println" which has been left in accidentally
v0.4.6
gliwkagliwka·8y ago·August 5, 2017
GitHub

📋 Changes

  • Closeable interface implemented in Database and Scanner
  • New constructor to create expressions without flags
  • Avoid some work in the fast path of Scanner.scan. (#24 - thanks to @eliaslevy)
  • Bugfix for edge cases causing an ArrayIndexOutOfBoundException (#23)
v0.4.5
gliwkagliwka·8y ago·July 21, 2017
GitHub

📋 Changes

  • call time speed up due to JNA direct mapping (PR #17) - thanks to @eliaslevy for this contribution.
v0.4.3
gliwkagliwka·8y ago·July 16, 2017
GitHub

📋 Changes

  • Enforce UTF-8 encoding on every string (java and jna - see #14) - thanks to @eliaslevy for this PR!
  • new version of the libhs.so shared linux library - has been updated to v4.5.1 and linked against older libraries to ensure it works on more conservative distributions (see #13)
v0.4.2
gliwkagliwka·8y ago·July 7, 2017
GitHub

This release introduces a precompiled bundled MacOs 64-bit library and thus works out of the box on those systems. Thanks to @eliaslevy for submitting this with PR #12. Additionally to the jar files below, you can add this to Gradle, maven, sbt and leiningen by visiting: https://jitpack.io/#cerebuild/hyperscan-java

v0.4.1
gliwkagliwka·8y ago·July 4, 2017
GitHub

📋 Changes

  • add test scope to the JUnit dependency and pin it to a version that is not RELEASE (#11)
v0.4.0
gliwkagliwka·8y ago·July 3, 2017
GitHub

📋 Changes

  • Adds a new method, Scanner.allocScratch, to preallocate the scratch space outside the scan code path and removes the allocation in Scanner.scan. (#9)
v0.3.1
gliwkagliwka·9y ago·June 25, 2017
GitHub

📋 Changes

  • Occasional segmentation faults during high memory pressure (#8)
v0.3.0
gliwkagliwka·9y ago·June 21, 2017
GitHub

📋 Changes

  • API method names were refactored to start with a lowercase letter to match the offical java style
  • The endOfMatch value now matches the the string index (zero based) of the end of the match (issue #6)
v0.2.0
gliwkagliwka·9y ago·May 17, 2017
GitHub

Changed match positions from bytes to actual character positions in the String to integrate better into the java ecosystem.

v0.1.3
gliwkagliwka·9y ago·May 17, 2017
GitHub

🐛 Bugfixes

  • Fixed wrong matched string getting returned in case of utf8 (#5)
v0.1.2
gliwkagliwka·9y ago·May 17, 2017
GitHub

📋 Changes

  • Includes precompiled x86 64-bit shared hyperscan library for most modern linux distributions (#3)
v0.1.1
gliwkagliwka·9y ago·April 19, 2017
GitHub

🐛 Bugfixes

  • Wrong string length in case of utf8 characters (bug #2)