Skip to content

Latest commit

 

History

History

htsget-actix

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

htsget-actix

MIT licensed Build Status

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:

  • s3-storage: used to enable S3Storage functionality.
  • url-storage: used to enable UrlStorage functionality.
  • experimental: used to enable experimental features that aren't necessarily part of the htsget spec, such as Crypt4GH support through C4GHStorage.

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.