#bioinformatics #continuous-integration #field #tested #documentation #following


A bioinformatics library for Rust. This library provides implementations of many algorithms and data structures that are useful for bioinformatics, but also in other fields.

89 releases (9 stable)

2.0.0 Jul 3, 2024
1.6.0 Mar 26, 2024
1.5.0 Dec 9, 2023
1.4.0 Sep 12, 2023
0.3.0 Mar 19, 2015

#42 in Data structures

Download history 2112/week @ 2024-03-28 1643/week @ 2024-04-04 1390/week @ 2024-04-11 1570/week @ 2024-04-18 2051/week @ 2024-04-25 1590/week @ 2024-05-02 1658/week @ 2024-05-09 1611/week @ 2024-05-16 1660/week @ 2024-05-23 1578/week @ 2024-05-30 1577/week @ 2024-06-06 2375/week @ 2024-06-13 1702/week @ 2024-06-20 1378/week @ 2024-06-27 1056/week @ 2024-07-04 1053/week @ 2024-07-11

5,372 downloads per month
Used in 96 crates (85 directly)

MIT license

19K SLoC

Crates.io Crates.io Crates.io GitHub Workflow Status Coveralls DOI

Rust-Bio logo Rust-Bio, a bioinformatics library for Rust.

This library provides Rust implementations of algorithms and data structures useful for bioinformatics. All provided implementations are rigorously tested via continuous integration.

Please see the API documentation for available features and examples of how to use them.

When using Rust-Bio, please cite the following article:

Köster, J. (2016). Rust-Bio: a fast and safe bioinformatics library. Bioinformatics, 32(3), 444-446.

Further, you can cite the used versions via DOIs:

Rust-Bio: DOI


Any contributions are welcome, from a simple bug report to full-blown new modules:

If you find a bug and don't have the time or in-depth knowledge to fix it, just check if you can add info to an existing issue and otherwise file a bug report with as many infos as possible. Pull requests are welcome if you want to contribute fixes, documentation, or new code. Before making commits, it would be helpful to first install pre-commit to avoid failed continuous integration builds due to issues such as formatting:

  1. Install pre-commit (see pre-commit.com/#installation)
  2. Run pre-commit install in the rust-bio base directory

Depending on your intended contribution frequency, you have two options for opening pull requests:

  1. For one-time contributions, simply fork the repository, apply your changes to a branch in your fork and then open a pull request.
  2. If you plan on contributing more than once, become a contributor by saying hi on the rust-bio Discord server, Together with a short sentence saying who you are and mentioning what you want to contribute. We'll add you to the team. Then, you don't have to create a fork, but can simply push new branches into the main repository and open pull requests there.

If you want to contribute and don't know where to start, have a look at the roadmap.

Documentation guidelines

Every public function and module should have documentation comments. Check out which types of comments to use where. In rust-bio, documentation comments should:

  • explain functionality
  • give at least one useful example of how to use it (best as doctests, that run during testing, and using descriptive expect() statements for handling any Err()s that might occur)
  • describe time and memory complexity listed (where applicable)
  • cite and link sources and explanations for data structures, algorithms or code (where applicable)

For extra credit, feel free to familiarize yourself with:

Minimum supported Rust version

Currently the minimum supported Rust version is 1.65.0.


Licensed under the MIT license http://opensource.org/licenses/MIT. This project may not be copied, modified, or distributed except according to those terms.


~285K SLoC