20 个版本

0.6.1 2024 年 5 月 22 日
0.5.8 2024 年 1 月 2 日
0.5.7 2023 年 11 月 2 日
0.5.0 2023 年 7 月 11 日
0.1.4 2023 年 2 月 24 日

#81 个月HTTP 服务器

Download history 165/week @ 2024-05-15 209/week @ 2024-05-22 1/week @ 2024-06-05 3/week @ 2024-06-12 1/week @ 2024-06-26 52/week @ 2024-07-03 114/week @ 2024-07-24 40/week @ 2024-07-31

154 次每月下载

MIT 许可证

450KB
11K SLoC

htsget-actix

MIT licensed Build Status

依赖于 htsget-rs 的本地实例框架代码,使用 Actix Web

概述

此包用于运行 htsget-rs 的本地实例。它基于

用法

作为应用程序运行 htsget-rs

此包使用 htsget-config 进行配置。有关如何配置此包的详细信息,请参阅 htsget-config

要运行此包的实例,请执行以下命令

cargo run -p htsget-actix

使用默认配置,这将启动一个在 127.0.01:8080 上的票务服务器和 127.0.01:8081 上的数据块服务器,数据可通过 data 目录访问。

要使用 S3Storage,请使用 s3-storage 功能编译

cargo run -p htsget-actix --features s3-storage

这将启动一个使用名为 S3Storage 的存储桶的票务服务器,该存储桶的名称为 "data"

要使用 UrlStorage,请使用 url-storage 功能进行编译。

有关文件结构的详细信息,请参阅 htsget-search

使用 TLS

运行此 crate 时将启动两个服务器实例。票务服务器返回客户端必须获取的票务 URL 列表。还有数据块服务器,它响应票务中的 URL。默认情况下,数据块服务器在没有 TLS 的情况下运行。要使用 TLS 运行数据块服务器,需要 pem 格式的 X.509 证书。

出于开发和测试目的,可以使用自签名证书。例如,要生成自签名证书,请运行

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj '/CN=localhost'

不建议在生产环境中使用自签名证书,因为这被认为是不安全的。

示例请求

使用默认配置设置,此 crate 对引用 data 目录中的文件的查询做出响应。以下是一些使用 curl 的示例请求

  • GET
curl '127.0.0.1:8080/variants/data/vcf/sample1-bcbio-cancer'
  • POST
curl --header "Content-Type: application/json" -d '{}' '127.0.0.1:8080/variants/data/vcf/sample1-bcbio-cancer'
  • 参数化 GET
curl '127.0.0.1:8080/variants/data/vcf/sample1-bcbio-cancer?format=VCF&class=header'
  • 参数化 POST
curl --header "Content-Type: application/json" -d '{"format": "VCF", "regions": [{"referenceName": "chrM"}]}' '127.0.0.1:8080/variants/data/vcf/sample1-bcbio-cancer'
  • 服务信息
curl '127.0.0.1:8080/variants/service-info'

作为库

不需要将此 crate 作为库进行交互,但是一些处理配置路由的函数在公共 API 中公开。

功能标志

此 crate 有以下功能

  • s3-storage:用于启用 S3Storage 功能。
  • url-storage:用于启用 UrlStorage 功能。

基准测试

此 crate 的基准测试使用 Criterion.rs 编写,旨在比较此 crate 与 htsget Reference Server 的性能。有一组轻基准测试和一个重基准测试。可以通过执行以下操作执行轻基准测试

cargo bench -p htsget-actix -- LIGHT

要运行重基准测试,需要下载额外的 vcf 文件,并将其放置在 data/vcf 目录

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

然后运行重基准测试

cargo bench -p htsget-actix -- HEAVY

许可证

此项目根据 MIT 许可证 许可。

依赖项

~40–60MB
~1M SLoC