Skip to content

This work presents a way to write extensions in Rust and use them in Python, using sourmash as an example.

License

Notifications You must be signed in to change notification settings

luizirber/2018-python-rust

Repository files navigation

Oxidizing Python: writing extensions in Rust

Luiz Carlos Irber Júnior

  • Department of Population Health and Reproduction, University of California, Davis, USA

DOI

Poster presented at GCCBOSC 2018 and SciPy 2018.

Abstract

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 as an example.

Table of Contents

References

  • Broder, Andrei Z. 1997. “On the Resemblance and Containment of Documents.” - In Compression and Complexity of Sequences 1997. Proceedings, 21–29. IEEE. http://ieeexplore.ieee.org/abstract/document/666900/.
  • Ondov, Brian D., Todd J. Treangen, Páll Melsted, Adam B. Mallonee, Nicholas H. Bergman, Sergey Koren, and Adam M. Phillippy. 2016. “Mash: Fast Genome and Metagenome Distance Estimation Using MinHash.” Genome Biology 17: 132. https://dx.doi.org/10.1186/s13059-016-0997-x
  • Bovee, Roderick, and Nick Greenfield. 2018. “Finch: A Tool Adding Dynamic Abundance Filtering to Genomic MinHashing.” The Journal of Open Source Software. doi: https://dx.doi.org/10.21105/joss.00505
  • Titus Brown, C., and Luiz Irber. 2016. “sourmash: A Library for MinHash Sketching of DNA.” The Journal of Open Source Software 1 (5). https://dx.doi.org/10.21105/joss.00027

About

This work presents a way to write extensions in Rust and use them in Python, using sourmash as an example.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published