【Rust日报】TonboLite - 基于 Tonbo 的 SQLite 扩展

科技   2025-01-14 18:49   重庆  

Swiftide - 用Rust开发AI Agent

示例,用 ripgrep 搜索代码。

#[swiftide_macros::tool(
    description = "Searches code",
    param(name = "code_query", description = "The code query")
)]
async fn search_code(
    context: &dyn AgentContext,
    code_query: &str,
) -> Result<ToolOutput, ToolError> {
    let command_output = context
        .exec_cmd(&Command::shell(format!("rg '{code_query}'")))
        .await?;

    Ok(command_output.into())
}

agents::Agent::builder()
        .llm(&openai)
        .tools(vec![search_code()])
        .build()?
        .query("In what file can I find an example of a swiftide agent?").await?;

https://bosun.ai/posts/swiftide-0-16/

jnv - 超好用的json文件交互查阅工具

已收获近5k星。

https://github.com/ynqa/jnv

浏览器中的Lisp Interpreter

https://vishpat.github.io/lisp-rs-wasm/

TonboLite - 基于 Tonbo 的 SQLite 扩展

你好!我是 Tzu,来自 Tonbo 团队。

TonboLite:https://github.com/tonbo-io/tonbolite 是基于 Tonbo 的 SQLite 扩展:https://github.com/tonbo-io/tonbo。它使 SQLite 能够在目标平台(如 WebAssembly 浏览器)上创建适合分析处理的表格,并高效写入数据。表格中的数据组织为分层的 Apache Parquet 格式文件,按需存储在本地磁盘(使用 OPFS 作为本地 I/O)或对象存储服务(如 S3)上。你可以通过在常规 SQLite 中创建虚拟表来使用它。

TonboLite 从探索 Tonbo 应用开始。Tonbo 的目标是将用于分析处理的数据(例如日志处理、指标监控或文本搜索)写入 SQLite 或 PostgreSQL 中的无限远程存储。

我们选择 SQLite,是因为它是最受欢迎的边缘事务型数据库。SQLite 最被要求改进的一个特性是对追加写(如日志、时间序列数据)提供更好的支持,而这些是分析数据中常见的需求。追加写面临两个主要挑战:

  1. SQLite3 使用 B 树作为存储结构。B 树对于随机访问性能良好,但在像日志结构数据库这样的追加写场景中,写入效率不高。

  2. 追加数据通常涉及大量写入量,这使得在单机环境中长期存储大量历史数据变得困难。

然而,Tonbo 很适合解决这两个问题:

  1. Tonbo 将 Parquet 文件组织为 LSM 树,这是一种非常优化并发追加写的数据库结构。

  2. Tonbo 支持在后台逐步将历史文件写入横向可扩展的存储服务(如 S3)。

这个项目仍处于非常早期的阶段。如果你对项目的目标和未来发展感兴趣,欢迎加入讨论:https://discord.gg/j27XVFVmJM。我们很乐意回答你可能有的任何问题。

https://github.com/tonbo-io/tonbolite

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章