4 releases

0.2.1 Oct 17, 2024
0.2.0 Oct 4, 2024
0.1.1 Sep 3, 2024
0.1.0 Aug 4, 2024

#298 in Filesystem

Download history 118/week @ 2024-08-05 198/week @ 2024-09-02 13/week @ 2024-09-09 43/week @ 2024-09-16 26/week @ 2024-09-23 190/week @ 2024-09-30 19/week @ 2024-10-07 226/week @ 2024-10-14 16/week @ 2024-10-21 3/week @ 2024-10-28 17/week @ 2024-11-04

263 downloads per month
Used in 5 crates (via htsget-search)

MIT license

320KB
8K SLoC

htsget-search

MIT licensed Build Status

Contains storage interfaces and abstractions for htsget-rs. It:

  • Allows htsget-rs to interact with storage to fetch and retrieve bioinformatics files like indexes.
  • Contains logic for local filesystem access, AWS S3 cloud access and arbitrary URL server access.

Overview

This crate is the mechanism by which htsget-rs interacts fetches data from bioinformatics files which it needs to process requrests. It also allows htsget-rs to create and format URL tickets correctly. It does this by providing storage layer abstractions which other crates can use to interact with data. It defines three kinds of storage which can fetch data:

  • local: Access files on the local filesystem.
  • s3: Access files on AWS S3.
  • url: Access files on any server which can respond to requests.

This crate is responsible for allowing the user to fetch the URL tickets returned by the ticket server. In the case of LocalStorage, this entails a separate data_server that can serve files using HTTP. S3Storage simply returns presigned S3 URLs.

Usage

For running htsget-rs as an application

In order to use a particular storage backend for URL tickets, the proper backend should be configured using htsget-config.

As a library

This crate provides have the following features:

  • The Storage trait contains functions used to fetch data: get, range_url, head and data_url. The local, s3, and url modules implement the Storage functionality.

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.

License

This project is licensed under the MIT license.

Dependencies

~30–54MB
~1M SLoC