|
| 1 | +# Oxidizing Python: writing extensions in Rust |
| 2 | + |
| 3 | +[Luiz Carlos Irber Júnior](https://github.com/luizirber) |
| 4 | + |
| 5 | +- Department of Population Health and Reproduction, University of California, Davis, USA |
| 6 | + |
| 7 | +Poster presented at [GCCBOSC 2018][1]. |
| 8 | + |
| 9 | +## Abstract |
| 10 | + |
| 11 | +Python has a mature ecosystem for extensions using C/C++, |
| 12 | +with Cython being part of the standard toolset for scientific programming. |
| 13 | +Even so, C/C++ still have many drawbacks, |
| 14 | +ranging from smaller annoyances (like library packaging, versioning and build systems) |
| 15 | +to serious one like buffer overflows and undefined behavior leading to security issues. |
| 16 | + |
| 17 | +Rust is a system programming language trying to avoid many of the C/C++ pitfalls, |
| 18 | +on top of providing a good development workflow and memory safety guarantees. |
| 19 | + |
| 20 | +This work presents a way to write extensions in Rust and use them in Python, |
| 21 | +using sourmash as an example. |
| 22 | + |
| 23 | +## Table of Contents |
| 24 | + |
| 25 | +- [Introduction](01.intro.md) |
| 26 | +- [Why Rust?](02.why.md) |
| 27 | +- [Current implementation](03.current_impl.md) |
| 28 | +- [Rust implementation](04.rust_impl.md) |
| 29 | +- [Future work](05.future.md) |
| 30 | +- [References](#references) |
| 31 | +- Appendices |
| 32 | + - [Submitted abstract](abstract.md) |
| 33 | + - [The final poster](poster/poster.pdf) |
| 34 | + |
| 35 | +## References |
| 36 | + |
| 37 | +- 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/. |
| 38 | +- 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 |
| 39 | +- 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 |
| 40 | +- 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 |
| 41 | + |
| 42 | + |
| 43 | +[1]: https://gccbosc2018.sched.com/ |
0 commit comments