Skip to content

Latest commit

 

History

History
7 lines (4 loc) · 1.07 KB

05.future.md

File metadata and controls

7 lines (4 loc) · 1.07 KB

Future work

This proof of concept focused on replacing the C++ parts with Rust, but while all the sourmash tests are passing there are many improvements to be done. The performance in most benchmarks is very close to the C++ implementation, but since this wasn't the initial goal of the experiment there are many opportunities to make it faster.

Another goal is to be able to use the core functionality of sourmash in browsers. A previous experiment focused on implementing a compatible package in JavaScript, but it lead to split codebases and increased maintenance burden. The Rust implementation make it possible to target WebAssembly and generate a JavaScript package wrapping it, with the added benefit of avoiding some JavaScript shortcomings (like 64-bit integers support).

The Rust library implements basic compatibility with Finch sketches [Bovee and Greenfield, 2018], allowing sharing data between both MinHash implementations. Many of the other sourmash methods (search, gather) are not available in Rust yet, but this already allows using other MinHash sketches with them.