You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support compiling remaining DataFusion crates (datafusion-core) to WASM #7652
The difficulty with getting the remaining DataFusion crates compiled to WASM is that they have non-optional dependencies on the parquet crate with its default features enabled. Several of the default parquet crate features require native dependencies that are not compatible with WASM, in particular the lz4 and zstd features. If we can arrange our feature flags to make it possible to depend on parquet with these features disabled, then it should be possible to compile the core datafusion crate to WASM as well.
Describe the solution you'd like
One approach might be to disable the relevant parquet features that could not be compiled as described below.
@tustvold do you have any thoughts about finagling the parquet crate's dependencies so it can compile, by default, on wasm? Should we perhaps change datafusion to disable the parquet default features?
tustvold
IIRC it is the compression codecs that have issues with WASM, disabling these by default I think would be surprising for users. Further I'm not sure how useful parquet support would be given that only InMemory object_store is supported on WASM, although I may have some time to look into this over the next couple of days
jonmmease
Yeah, I don't think we'd want DataFusion's default build to disable the default parquet features, but if we could arrange things so that depending on the datafusion core crate with default-features=false would either remove the parquet dependency all together, or disable the default parquet features, then I think we could get things at least compiling for wasm.
Activity
alamb commentedon Sep 26, 2023
A good first step might be to simply make parquet optional in DataFusion -- aka #7653
That would allow us to validate and explore what dependencies are blocking wasm compilation
tustvold commentedon Oct 1, 2023
apache/arrow-rs#4884 makes parquet compile for WASM
alamb commentedon Oct 25, 2023
Also, #7745 make parquet support optional in DataFusion
fudini commentedon Jan 20, 2024
I managed to compile for wasm, but I encountered a couple of problems:
SessionContext::newstd::time::Instant- this won't compile and probably needs to be hidden behind cfgmain...fudini:arrow-datafusion:wasm
After these changes I was able to create
SessionContextand run a simple queryalamb commentedon Dec 17, 2024
I have filed an epic to track additional WASM work here:
alamb commentedon Apr 7, 2025
datafusion-core can be compiled to WASM and is now tested in each CI run. See this recent PR from @XiangpengHao :