我们很高兴地宣布发布最新的次要版本ReductStore,1.6.0。还原商店是一个时间序列数据库,旨在存储和管理大量斑点数据。
要下载最新发布的版本,请访问我们的Download Page。
1.6.0中的新功能是什么?
企业来源许可证(Busl-1.1)
我们已将还原店许可更新为业务源许可证(Busl-1.1)。该许可允许免费使用数据库来开发,研究和测试目的。此外,只要公司的总财务能力不到上一年的总金额不到20,000,000美元,它就可以在生产环境中免费使用。有关其他信息,请参阅here。
我们认为,新许可证在自由和创收之间取得了良好的平衡。这种平衡是维护和改善我们的技术并为其用户带来利益所必需的。
客户SDK生锈
还原车站在几个月前从C ++改写为Rust。我们很高兴成为Rust社区的一部分,并迈出了与客户SDK迈向Rust的新一步。 SDK由reqwest提供动力,并使数据库异步集成到Rust应用程序中:
use bytes::Bytes;
use reduct_rs::{ReductClient, HttpError};
use std::str::from_utf8;
use std::time::SystemTime;
use tokio;
#[tokio::main]
async fn main() -> Result<(), HttpError> {
let client = ReductClient::builder()
.url("http://127.0.0.1:8383")
.build();
let timestamp = SystemTime::now();
let bucket = client.create_bucket("test").exist_ok(true).send().await?;
bucket
.write_record("entry-1")
.timestamp(timestamp)
.data(Bytes::from("Hello, World!"))
.send()
.await?;
let record = bucket
.read_record("entry-1")
.timestamp(timestamp)
.send()
.await?;
println!("Record: {:?}", record);
println!(
"Data: {}",
from_utf8(&record.bytes().await?.to_vec()).unwrap()
);
Ok(())
}
HTTP API 1.6:删除条目和有限的查询
新的API包括DELETE /api/v1/b/:bucket/:entry
端点,使您可以从存储桶中删除条目。当在边缘设备上使用还原器时,它可以用作具有固定尺寸的大型FIFO缓冲区。在这种情况下,由于它会自动覆盖数据的手动删除数据是不必要的。但是,当存储无配额的数据时,此功能可能很有用,并且您想删除不再使用或错误上传的条目。
另一个新功能是查询请求中的limit
参数(GET api/v1/b/:bucket/:entry/q
)。当用户向数据要求以一个时间间隔请求数据时,他们可能不知道存储了多少个记录,因为查询可以作为迭代器作为迭代器来避免大量请求的峰值。使用新功能,如果您只需要一定量的数据,则可以指定请求的最大记录。
传统上,我们将官方的SDK与Python,C++和JavaScript保持一致,以便您可以使用最新功能。
希望您发现此版本有用。如果您有任何疑问或反馈,请不要犹豫在Discord或通过就GitHub进行讨论。
感谢您使用ReductStore!