-
Notifications
You must be signed in to change notification settings - Fork 45
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
Browser friendliness? #70
Comments
One spanner in the works here is that this module uses an older, incompatible version of JavaScript decorators so updating TypeScript is quite painful. The decorators just add |
Add a filter type that lets us efficiently remove items as well as add them. It would be better to use the `bloom-filters` module at this point but it adds 50KB+ to browser bundles for very simple use cases so it's not suitable. We can revisit if Callidon/bloom-filters#70 is ever resolved.
Add a filter type that lets us efficiently remove items as well as add them. It would be better to use the `bloom-filters` module at this point but it adds 50KB+ to browser bundles for very simple use cases so it's not suitable. We can revisit if Callidon/bloom-filters#70 is ever resolved.
Hello 🖖 I'm working on a 4.0.0-alpha.0 available here https://github.com/Callidon/bloom-filters/tree/next/4.0.0. What's new in this version?
I would also like to remove the |
Let me get a stable state before going on! I need to fix the tests. With the new xxhash package I introduced good bugs dealing with bigints. This will prepare the work for the long package. |
Update: buffer and long are not used anymore. The draft #71 is in progress but is working as expected. Take a look, I will be happy to get feedback, especially on the usage of the wasm which takes around 347kb 😬 |
I'd really like to use this module in browsers but the bundle size ends up being very large, just importing the
CuckooFilter
adds over 50KB of minified code to the bundle.Using
esbuild
to bundle just this script:Creates a 216KB bundle (63KB minified), and I have to shim some node internals (e.g. the
Buffer
class) for it to work:The
CuckooFilter
implementation itself is 8.4KB un-minified so there's a lot of unused code here.Would you be open to some PRs that make this module more browser friendly?
Some low hanging fruit I can see immediately:
Buffer
s with built-inUint8Array
slong
dependency and use built-inBigInt
sThe first is a breaking change but will yield the biggest benefit - the breaking change is that consumers will no longer be able to
require
the module, they mustimport
it via static or dynamic imports.The second is breaking where
Buffer
s are used as return values which from what I can see only appears to be in the Invertible Bloom Lookup Table implementation.The rest are just internal changes so are non-breaking.
The text was updated successfully, but these errors were encountered: