#object-store #default #http-client #aws #send #head

object-store-wasm

WebAssembly object_store implementation

6 releases

0.0.6 Sep 9, 2024
0.0.5 Aug 14, 2024
0.0.4 Jun 22, 2024
0.0.3 Apr 14, 2024

#462 in WebAssembly

Download history 214/week @ 2024-08-26 95/week @ 2024-09-02 204/week @ 2024-09-09 80/week @ 2024-09-16 96/week @ 2024-09-23 21/week @ 2024-09-30 21/week @ 2024-10-07 5/week @ 2024-10-14 13/week @ 2024-10-28 151/week @ 2024-11-04 360/week @ 2024-11-11 98/week @ 2024-11-18 145/week @ 2024-11-25 38/week @ 2024-12-09

327 downloads per month
Used in 2 crates (via vegafusion-runtime)

MIT/Apache

63KB
1.5K SLoC

object-store-wasm

A wasm-first implementation of the ObjectStore trait, accounting for the fundamentally non-Send nature of wasm_bindgen_futures::JsFuture (and therefore tacitly assuming single-threaded usage).

Why not just contribute this back to the object_store crate at apache/arrow-rs?

I'd like to, but that would require optionalizing most of the Send constraints on the traits in client and http (discounting the several thousand lines of code in aws, gcp, azure), behind a default on feature flag (threadsafe, multithread, whatever).

I expect there's a few parts of this that could be upstreamed, but I seriously doubt all of this belongs upstream. If that turns out to be incorrect, consider this repo an exercise in exterior refactoring.

Roadmap

  • get_opts via http/s
  • attempt actual streaming responses
  • avoid/provide a config option for swapping HEAD requests with zero-range GETs
  • JS bindings (behind a flag)
  • AWS read only operations
  • wasm-exposed get, list

Dependencies

~17–35MB
~515K SLoC