Skip to content

Application SingleRust as an ecosystem package#349

Open
ianfd wants to merge 3 commits intoscverse:mainfrom
ianfd:main
Open

Application SingleRust as an ecosystem package#349
ianfd wants to merge 3 commits intoscverse:mainfrom
ianfd:main

Conversation

@ianfd
Copy link
Copy Markdown

@ianfd ianfd commented Mar 30, 2026

Name of the tool: SingleRust

Short description: A toolkit to build high-performance single-cell workflows within the Rust programming language. It features several lower-level ecosystem libraries like single-algebra, single-statistics, etc...

How does the package use scverse data structures (please describe in a few sentences): It uses the already established anndata-rs and implements a pure in-memory implementation of the AnnData-structure for high-performance operations (anndata-memory).

  • The code is publicly available under an OSI-approved license

  • The package provides versioned releases

  • The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda, crates.io)

  • Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1]

  • Continuous integration (CI) automatically executes these tests on each push or pull request [^2]

  • The package provides API documentation via a website or README[^3]

  • The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)

  • I am an author or maintainer of the tool and agree on listing the package on the scverse website

  • Please announce this package on scverse communication channels (zulip, discourse, twitter)

  • Please tag the author(s) these announcements. Handles (e.g. @scverse_team) to include are:

    • Zulip: Ian Ferenc Diks
    • Discourse:
    • Mastodon:
    • Bluesky: @ianfd.bsky.social
    • Twitter:
  • The package provides tutorials (or "vignettes") that help getting users started quickly

  • The package uses the scverse cookiecutter template.

@grst
Copy link
Copy Markdown
Contributor

grst commented Mar 31, 2026

Dear @ianfd,

thanks for submitting the package, great to see more rust taken up in the community!

The package provides versioned releases

Could you please also tag the releases in git, or use Github's "releases" feature?

Automated tests cover essential functions of the package and a reasonable range of inputs and conditions

The test coverage seems quite low. In fact, the only tests I could find are in the differential expression module. In the CI script, three test commands are commented out.

@ianfd
Copy link
Copy Markdown
Author

ianfd commented Mar 31, 2026

Hey @grst,

thanks a lot for the quick feedback — really appreciate it.

Regarding releases: absolutely, I’ll start tagging versions in git and use GitHub Releases going forward to make versioning more transparent.

On testing: that’s a fair point. At the moment, most of the tests live in a separate internal repository where they’re tied into a larger benchmarking and validation pipeline that runs on dedicated infrastructure. However, I understand that from the outside this makes coverage and reliability hard to assess.

I’ll move a representative subset of these tests into the main repository and enable them in CI so that core functionality is covered and visible. I’ll also make sure the CI runs all relevant test commands on each push/PR.

Thanks for pointing this out. I'll address these points shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants