-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add bundled-vectorscan
feature
#28
Conversation
@flier It would likely be very little additional effort to add a similar |
Also, I see that there is some appveyor-based CI, though it seems to be broken. Would you be interested in a simple GitHub Actions setup for the |
Some benchmark runs from my M1 Max using the
|
I think we may move the bundled version of |
I'm not sure, because build a hyperscan from source code is a very long time task, we need several steps to prepare it. |
We already have a CI workflow, but it may not works on ARM and windows platforms, if you have time you can finish it, Thanks |
Oh! Somehow I missed that. Nevermind :) |
Thank you; I will give this a try. |
In Nosey Parker, I ended up putting together my own minimal bindings for Vectorscan specific to that project's use case: it only links statically against Vectorscan (not Hyperscan), builds that from source, and skips building parts of the Vectorscan project that aren't needed by Nosey Parker. See here: It would be useful still to have support for using bundled |
The new
bundled-vectorscan
feature addresses #20, allowingrust-hyperscan
to build and run on non-Intel architectures, including Apple Silicon. The way this feature works is to build against a bundled version of the vectorscan fork of Hyperscan, which supports additional architectures but keeps the same API.This feature is not enabled by default. The bundled version of vectorscan is added via a Git submodule.
Building vectorscan (or hyperscan) from source requires several build-time dependencies, including Boost, CMake, Ragel, and Python. Isolating the vectorscan (or hyperscan) code to eliminate these dependencies would be significantly more work.
I also updated the README to describe this new feature, as well as expanding slightly on the existing features.