https://github.com/cmdoret/htslurp
slurp noodles-htsget streams into python
https://github.com/cmdoret/htslurp
Last synced: about 1 year ago
JSON representation
slurp noodles-htsget streams into python
- Host: GitHub
- URL: https://github.com/cmdoret/htslurp
- Owner: cmdoret
- License: apache-2.0
- Created: 2024-07-15T14:59:11.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-15T13:00:57.000Z (over 1 year ago)
- Last Synced: 2025-02-17T23:47:35.937Z (over 1 year ago)
- Language: Rust
- Homepage:
- Size: 1.62 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# htslurp
>[!WARNING]
> This is an experiment and the code is in a not-working state.
Attempt at making a noodles-based htsget client that can lazily deserialize records in memory. The aim is to provide a simple rust API with python bindings.
## Context
The aim of this project is to provide a convenient interface to consume remote CRAM/BCF records over the network without storing them locally.
The noodles crate is used to fetch a binary stream from a server and construct a reader over it that can lazily instantiate records.
```mermaid
flowchart LR
htsget[htsget-server] -->|bytes| Reader
Reader -->|Cram records| python
```
## Development
This project requires:
* a working rust (>=1.76) and python (>=3.10) installation
* [maturin](https://github.com/PyO3/maturin)
* [uv](https://github.com/astral-sh/uv)
* [just](https://github.com/casey/just)
To build the python package:
```sh
just build
```
To install the project in installable mode:
```sh
just develop
```