Skip to content

Latest commit

 

History

History
5 lines (3 loc) · 872 Bytes

01.intro.md

File metadata and controls

5 lines (3 loc) · 872 Bytes

Intro

Python has a mature ecosystem for extensions using C/C++, with Cython being part of the standard toolset for scientific programming. Even so, C/C++ still have many drawbacks, ranging from smaller annoyances (like library packaging, versioning and build systems) to serious one like buffer overflows and undefined behavior leading to security issues. Rust is a system programming language trying to avoid many of the C/C++ pitfalls, on top of providing a good development workflow and memory safety guarantees. This work presents a way to write extensions in Rust and use them in Python, using sourmash [Brown and Irber, 2016] as an example.

sourmash implements MinHash [Broder, 1997], a method for estimating the similarity of two or more datasets, and expanding on the work pioneered by Mash [Ondov et al, 2016]. It is available as a CLI and a Python library.