1个不稳定版本

0.1.0 2020年9月7日

#9 in #dap

MIT 许可证

13KB
329

Build Status Docker Automated build Rust nightly

𓃢 DARS

DARS是一个使用Rust编写的异步DAP/2服务器,旨在实现快速和轻量级。它支持OPeNDAP协议的一部分。它旨在仅提供DAP协议服务,而不提供目录或WMS等常见服务。

请参阅以下安装说明

OPeNDAP服务器实现和文件格式

变量和超立方体约束(除了步长),基于HDF5的文件格式得到支持

HDF5通过hidefix读取,它是一个用于并发读取的实验性HDF5读取器。

一些简单基准测试

进行有意义的基准测试是困难的。然而,这里尝试比较Dars、Thredds和Hyrax。有关更多详细信息,请参阅comparison/report.mdcomparison/benchmarks.sh。使用10个并发连接测量了持续时间内的最大请求每秒数wrk。对于Thredds和大数据集wrk2,限制了每秒2个请求,以避免过多的内存错误。服务器使用默认的docker镜像逐一运行。展示不同测试的延迟直方图将很有趣,但服务器之间的性能(在特定请求每秒数下的可接受延迟)差异很大,难以制作任何有意义的图表。不过,它们应该包含在进一步的分析中,但应针对每个服务器单独进行。

Requests per second for Dars, Thredds and Hyrax

Requests per second for Dars, Thredds and Hyrax

这些基准测试期间的服务器负载也非常不同

CPU and memory during load testing

安装和基本用法

设置 rustup 夜间版.

从仓库运行

$ cargo run --release

或安装

$ cargo install --path dars

默认情况下,可以使用浏览器探索简单的目录,如果目录被禁用,可以在以下位置查询数据集和 DAP URL 列表:https://127.0.0.1:8001/data/(使用 curl -Haccept:application/json https://127.0.0.1:8001/data/ 获取 JSON)。例如,使用 ncdump -h http://.. 探索数据集。

Docker

使用 gauteh/dars 或自行构建

$ docker build -t dars .
$ docker run -it -p 8001:8001 dars

/data 上挂载数据。

依赖关系

约 20–32MB
约 511K SLoC