{"id":30177533,"url":"https://github.com/feldroop/libsais-rs","last_synced_at":"2026-01-20T17:31:53.517Z","repository":{"id":309196079,"uuid":"1035440827","full_name":"feldroop/libsais-rs","owner":"feldroop","description":"Rust bindings to libsais","archived":false,"fork":false,"pushed_at":"2025-08-10T14:08:24.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-10T14:28:14.511Z","etag":null,"topics":["algortihm","bioinformatics","string-analysis","suffix-array"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feldroop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-10T12:06:51.000Z","updated_at":"2025-08-10T14:08:27.000Z","dependencies_parsed_at":"2025-08-10T14:30:46.658Z","dependency_job_id":"2d890f52-7d4d-4f9a-a64a-629da1a35f2d","html_url":"https://github.com/feldroop/libsais-rs","commit_stats":null,"previous_names":["feldroop/libsais-rs"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/feldroop/libsais-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroop%2Flibsais-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroop%2Flibsais-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroop%2Flibsais-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroop%2Flibsais-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroop","download_url":"https://codeload.github.com/feldroop/libsais-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroop%2Flibsais-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269962696,"owners_count":24504283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algortihm","bioinformatics","string-analysis","suffix-array"],"created_at":"2025-08-12T04:15:04.445Z","updated_at":"2026-01-20T17:31:53.510Z","avatar_url":"https://github.com/feldroop.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libsais-rs\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/feldroop/libsais-rs/rust.yml?style=flat-square\u0026logo=github\u0026label=CI)](https://github.com/feldroop/libsais-rs/actions)\n[![Crates.io](https://img.shields.io/crates/v/libsais.svg?style=flat-square\u0026logo=rust)](https://crates.io/crates/libsais)\n[![Documentation](https://img.shields.io/docsrs/libsais?style=flat-square\u0026logo=rust)](https://docs.rs/libsais)\n\nAn idiomatic and mostly safe API wrapper for the awesome and _very_ fast library [`libsais`] by Ilya Grebnov.\n\n⚠️ **Warning:** this crate is not yet battle-tested, there might be bugs. The API is still subject to small changes. Any kind of feedback and suggestions via the issue tracker is highly appreciated!⚠️\n\n## Functionality\n\nThis crate exposes the whole functionality of [`libsais`]. It might be useful to also check out the [documentation of the original library](https://github.com/IlyaGrebnov/libsais).\n\n- Suffix array construction for `u8`/`u16`/`i32`/`i64` texts and `i32`/`i64` output arrays\n- Generalized suffix arrays\n- Longest common prefix arrays and permuted longest common prefix arrays\n- Burrows-Wheeler-Transform and reversal\n- Optional multithreading support via the `openmp` feature (enabled by default)\n\n## Usage\n\nThis crate provides generic builder-like APIs for the whole functionality listed above. The following is a simple example of how to use this library to construct a suffix array in parallel:\n\n```rust\nuse libsais::{SuffixArrayConstruction, ThreadCount};\n\nlet text = b\"barnabasbabblesaboutbananas\";\nlet suffix_array: Vec\u003ci32\u003e = SuffixArrayConstruction::for_text(text)\n    .in_owned_buffer()\n    .multi_threaded(ThreadCount::openmp_default())\n    .run()\n    .expect(\"The example in the README should really work\")\n    .into_vec();\n```\n\nPlease consult the [documentation] and the [examples](./examples) for more details on how to use this library.\n\n## Performance and benchmarks\n\nThis library only adds a few safety checks, which should not impact performance in a relevant way. A notable exception is the suffix array construction for `i32` and `i64` inputs. Please consult the [documentation](https://docs.rs/libsais/latest/libsais/suffix_array/index.html#large-alphabets) for details.\n\nBelow are the results of a small benchmark of suffix array construction algorithms available on [crates.io](https://crates.io). The input was the human genome, truncated to 2 GB. Details about this benchmark can be found [here](https://github.com/feldroop/crates-io-saca-benchmark).\n\nThe excellent performance of [`libsais`] is one of the main reasons why this API wrapper crate was created.\n\n\u003cimg src=\"https://raw.githubusercontent.com/feldroop/crates-io-saca-benchmark/refs/heads/master/plot/plot.svg\" /\u003e\n\n[`libsais`]: https://github.com/IlyaGrebnov/libsais\n[documentation]: https://docs.rs/libsais/latest/libsais/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeldroop%2Flibsais-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeldroop%2Flibsais-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeldroop%2Flibsais-rs/lists"}