26 releases
new 0.8.1 | Mar 19, 2025 |
---|---|
0.7.2 | Nov 22, 2024 |
0.6.1 | May 22, 2024 |
0.5.8 | Jan 2, 2024 |
0.1.4 | Feb 24, 2023 |
#145 in HTTP server
123 downloads per month
415KB
10K
SLoC
htsget-actix
[!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.
Overview
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
Quickstart
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.
As a library
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.
Feature flags
This crate has the following features:
aws
: used to enableS3
location functionality.url
: used to enableUrl
location functionality.experimental
: used to enable experimental features that aren't necessarily part of the htsget spec, such as Crypt4GH support throughC4GHStorage
.
Benchmarks
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
License
This project is licensed under the MIT license.
Dependencies
~42–66MB
~1M SLoC