Important
The functionality of htsget-axum is identical to this crate, and it is recommended for all projects to use htsget-axum instead.
This crate will be maintained to preserve backwards compatibility, however htsget-axum is favoured because it contains components that better fit with the rest of htsget-rs.
Framework dependent code for a server instance of htsget-rs, using Actix Web.
This crate is used for running a local instance of htsget-rs. It is based on:
- Actix Web for endpoints, routes, and middleware.
- htsget-http for htsget-rs specific HTTP responses
Launch a server instance:
cargo run -p htsget-actix
And fetch tickets from localhost:8080
:
curl 'http://localhost:8080/variants/data/vcf/sample1-bcbio-cancer'
This crate uses htsget-config for configuration. All options supported in htsget-axum are also supported here.
There shouldn't be any need to interact with this crate as a library, however some functions which deal with configuring routes are exposed in the public API.
This crate has the following features:
s3-storage
: used to enableS3Storage
functionality.url-storage
: used to enableUrlStorage
functionality.experimental
: used to enable experimental features that aren't necessarily part of the htsget spec, such as Crypt4GH support throughC4GHStorage
.
Benchmarks for this crate written using Criterion.rs, and aim to compare the performance of this crate with the htsget Reference Server. There are a set of light benchmarks, and one heavy benchmark. For light benchmarks run:
cargo bench -p htsget-actix -- LIGHT
To run the heavy benchmark, an additional vcf file needs to be downloaded, and placed in the data/vcf
directory:
curl ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/data_collections/1000_genomes_project/release/20190312_biallelic_SNV_and_INDEL/ALL.chr14.shapeit2_integrated_snvindels_v2a_27022019.GRCh38.phased.vcf.gz > data/vcf/internationalgenomesample.vcf.gz
Then run the heavy benchmark:
cargo bench -p htsget-actix -- HEAVY
This project is licensed under the MIT license.