TonboLite – SQLite Extension Based on Tonbo

Swiftide – Develop AI Agent with Rust

Example of searching code with 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 – A Very Useful JSON File Interaction Tool

Has gained nearly 5k stars.

https://github.com/ynqa/jnv

Lisp Interpreter in the Browser

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

TonboLite – SQLite Extension Based on Tonbo

Hello! I am Tzu from the Tonbo team.

TonboLite: https://github.com/tonbo-io/tonbolite is an SQLite extension based on Tonbo: https://github.com/tonbo-io/tonbo. It enables SQLite to create tables suitable for analytical processing on target platforms (such as WebAssembly browsers) and write data efficiently. The data in the tables is organized as hierarchical Apache Parquet format files, stored on local disk (using OPFS for local I/O) or object storage services (like S3) as needed. You can use it by creating virtual tables in regular SQLite.

TonboLite starts with exploring Tonbo applications. The goal of Tonbo is to write data used for analytical processing (such as log processing, metric monitoring, or text search) into infinitely remote storage in SQLite or PostgreSQL.

We chose SQLite because it is the most popular edge transactional database. One of the most requested improvements for SQLite is better support for append writes (such as logs, time-series data), which are common needs in analytical data. Append writes face two main challenges:

  1. SQLite3 uses B-trees as the storage structure. B-trees perform well for random access, but are not efficient for write operations in append-write scenarios like log-structured databases.

  2. Appending data often involves a large volume of writes, making it difficult to store large amounts of historical data long-term in a single-machine environment.

However, Tonbo is well-suited to address both of these issues:

  1. Tonbo organizes Parquet files as LSM trees, a database structure that is highly optimized for concurrent append writes.

  2. Tonbo supports gradually writing historical files to horizontally scalable storage services (such as S3) in the background.

This project is still in very early stages. If you are interested in the goals and future development of the project, feel free to join the discussion: https://discord.gg/j27XVFVmJM. We are happy to answer any questions you may have.

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

From the Daily Report Team Mike

Subscribe to the community learning exchange platform:

  • Rustcc Forum: Supports RSS
  • WeChat Official Account: Rust Language Chinese Community

Leave a Comment