还原器1.6.0已发布新的许可证和客户SDK的RUST
#news #database #rust #reductstore

我们很高兴地宣布发布最新的次要版本ReductStore1.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与PythonC++JavaScript保持一致,以便您可以使用最新功能。

希望您发现此版本有用。如果您有任何疑问或反馈,请不要犹豫在Discord或通过就GitHub进行讨论。

感谢您使用ReductStore