freshcrate
Skin:/
Home > RAG & Memory > swiftide

swiftide

Fast, streaming indexing, query, and agentic LLM applications in Rust

Why this rank:Strong adoptionHealthy release cadenceRelease freshness

Description

Fast, streaming indexing, query, and agentic LLM applications in Rust

README

(back to top)

What is Swiftide?

Swiftide is a Rust library for building LLM applications. From performing a simple prompt completion, to building fast, streaming indexing and querying pipelines, to building agents that can use tools and call other agents.

High level features

  • Simple primitives for common LLM tasks
  • Build fast, streaming indexing and querying pipelines
  • Easily build agents, mix and match with previously built pipelines
  • A modular and extendable API, with minimal abstractions
  • Integrations with popular LLMs and storage providers
  • Ready to use pipeline transformations or bring your own
  • Build graph like workflows with Tasks
  • Langfuse support
Swiftide overview

Part of the bosun.ai project. An upcoming platform for autonomous code improvement.

We <3 feedback: project ideas, suggestions, and complaints are very welcome. Feel free to open an issue or contact us on discord.

Caution

Swiftide is under heavy development and can have breaking changes. Documentation might fall short of all features, and despite our efforts be slightly outdated. We recommend to always keep an eye on our github and api documentation. If you found an issue or have any kind of feedback we'd love to hear from you.

(back to top)

Latest updates on our blog ๐Ÿ”ฅ

More on our blog

(back to top)

Examples

Indexing a local code project, chunking into smaller pieces, enriching the nodes with metadata, and persisting into Qdrant:

indexing::Pipeline::from_loader(FileLoader::new(".").with_extensions(&["rs"]))
        .with_default_llm_client(openai_client.clone())
        .filter_cached(Redis::try_from_url(
            redis_url,
            "swiftide-examples",
        )?)
        .then_chunk(ChunkCode::try_for_language_and_chunk_size(
            "rust",
            10..2048,
        )?)
        .then(MetadataQACode::default())
        .then(move |node| my_own_thing(node))
        .then_in_batch(Embed::new(openai_client.clone()))
        .then_store_with(
            Qdrant::builder()
                .batch_size(50)
                .vector_size(1536)
                .build()?,
        )
        .run()
        .await?;

Querying for an example on how to use the query pipeline:

query::Pipeline::default()
    .then_transform_query(GenerateSubquestions::from_client(
        openai_client.clone(),
    ))
    .then_transform_query(Embed::from_client(
        openai_client.clone(),
    ))
    .then_retrieve(qdrant.clone())
    .then_answer(Simple::from_client(openai_client.clone()))
    .query("How can I use the query pipeline in Swiftide?")
    .await?;

Running an agent that can search code:

#[swiftide::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
        .executor()
        .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?;

Agents loop over LLM calls, tool calls, and lifecycle hooks until a final answer is reached.

You can find more detailed examples in /examples

(back to top)

Vision

Our goal is to create a fast, extendable platform for building LLM applications in Rust, to further the development of automated AI applications, with an easy-to-use and easy-to-extend api.

(back to top)

Features

  • Simple primitives for common LLM tasks
  • Fast, modular streaming indexing pipeline with async, parallel processing
  • Experimental query pipeline
  • Experimental agent framework
  • A variety of loaders, transformers, semantic chunkers, embedders, and more
  • Bring your own transformers by extending straightforward traits or use a closure
  • Splitting and merging pipelines
  • Jinja-like templating for prompts
  • Store into multiple backends
  • Integrations with OpenAI, Groq, Gemini, Anthropic, Redis, Qdrant, Ollama, FastEmbed-rs, Fluvio, LanceDB, and Treesitter
  • Evaluate pipelines with RAGAS
  • Sparse vector support for hybrid search
  • tracing supported for logging and tracing, see /examples and the tracing crate for more information.
  • Tracing layer for exporting to Langfuse

In detail

Feature Details
Supported Large Language Model providers OpenAI (and Azure)
Anthropic
Gemini
OpenRouter
AWS Bedrock (Converse API)
Groq - All models
Ollama - All models
Agents All the boiler plate for autonomous agents so you don't have to
Tasks Build graph like workflows with tasks, combining all the above to build complex applications
Loading data Files
Scraping
Fluvio
Parquet
Kafka
Other pipelines and streams
Example and pre-build transformers and metadata generation Generate Question and answerers for both text and code (Hyde)
Summaries, titles and queries via an LLM
Extract definitions and references with tree-sitter
Splitting and chunking Markdown
Text (text_splitter)
Code (with tree-sitter)
Storage Qdrant
Redis
LanceDB
Postgres
Duckdb
Query pipeline Similarity and hybrid search, query and response transformations, and evaluation

(back to top)

Getting Started

Prerequisites

Make sure you have the rust toolchain installed. rustup Is the recommended approach.

To use OpenAI, an API key is required. Note that by default async_openai uses the OPENAI_API_KEY environment variables.

Other integrations might have their own requirements.

Installation

  1. Set up a new Rust project

  2. Add swiftide

    cargo add swiftide
  3. Enable the features of integrations you would like to use in your Cargo.toml

  4. Write a pipeline (see our examples and documentation)

(back to top)

Usage and concepts

Before building your streams, you need to enable and configure any integrations required. See /examples.

We have a lot of examples, please refer to /examples and the Documentation

Note

No integrations are enabled by default as some are code heavy. We recommend you to cherry-pick the integrations you need. By convention flags have the same name as the integration they represent.

Indexing

An indexing stream starts with a Loader that emits Nodes. For instance, with the Fileloader each file is a Node.

You can then slice and dice, augment, and filter nodes. Each different kind of step in the pipeline requires different traits. This enables extension.

Nodes are generic over their inner type. This is a transition in progress, but when you BYO, feel free to slice and dice. The inner type can change midway through the pipeline.

  • from_loader (impl Loader) starting point of the stream, creates and emits Nodes
  • filter_cached (impl NodeCache) filters cached nodes
  • then (impl Transformer) transforms the node and puts it on the stream
  • then_in_batch (impl BatchTransformer) transforms multiple nodes and puts them on the stream
  • then_chunk (impl ChunkerTransformer) transforms a single node and emits multiple nodes
  • then_store_with (impl Storage) stores the nodes in a storage backend, this can be chained

Additionally, several generic transformers are implemented. They take implementers of SimplePrompt and EmbedModel to do their things.

Warning

Due to the performance, chunking before adding metadata gives rate limit errors on OpenAI very fast, especially with faster models like gpt-5-nano. Be aware. The async-openai crate provides an exmponential backoff strategy. If that is still a problem, there is also a decorator that supports streaming in swiftide_core/indexing_decorators.

Querying

A query stream starts with a search strategy. In the query pipeline a Query goes through several stages. Transformers and retrievers work together to get the right context into a prompt, before generating an answer. Transformers and Retrievers operate on different stages of the Query via a generic statemachine. Additionally, the search strategy is generic over the pipeline and Retrievers need to implement specifically for each strategy.

That sounds like a lot but, tl&dr; the query pipeline is fully and strongly typed.

  • Pending The query has not been executed, and can be further transformed with transformers
  • Retrieved Documents have been retrieved, and can be further transformed to provide context for an answer
  • Answered The query is done

Additionally, query pipelines can also be evaluated. I.e. by Ragas.

Similar to the indexing pipeline each step is governed by simple Traits and closures implement these traits as well.

(back to top)

Contributing

Swiftide is in a very early stage and we are aware that we lack features for the wider community. Contributions are very welcome. ๐ŸŽ‰

If you have a great idea, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

Indexing and querying are performance sensitive tasks. Please make sure to consider allocations and performance when contributing.

AI Generated code is welcome and not frowned upon. Please be genuine and think critically about what you add.

If you just want to contribute (bless you!), see our issues or join us on Discord.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

AI Agents can refer to AGENTS.md for workspace layout, commands, and expectations tailored to agents.

(back to top)

Core Team Members


timonv
open for swiftide consulting

tinco

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Release History

VersionChangesUrgencyDate
v0.32.1### New features - [8bca0ef](https://github.com/bosun-ai/swiftide/commit/8bca0efa246e6adac061006f5f72cc9dd038cc8f) *(integrations/tree-sitter)* Add C# support ([#967](https://github.com/bosun-ai/swiftide/pull/967)) - [da35870](https://github.com/bosun-ai/swiftide/commit/da358708c83459c7f990027759fa5c56a2b647b9) Custom schema for fail tool ([#966](https://github.com/bosun-ai/swiftide/pull/966)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.32.0...0.32.1Low11/15/2025
v0.32.0### New features - [9ae3331](https://github.com/bosun-ai/swiftide/commit/9ae33317bbcbf5e65e3aa7eb0bf378190b7c33b5) *(agents)* [**breaking**] Improve toolspec api with schemars and support all possible types ([#940](https://github.com/bosun-ai/swiftide/pull/940)) **BREAKING CHANGE**: macro-level `json_type` overrides beyond the basic primitives are no longer enforced; rely on Rust type inference or provide an explicit schemars-derived struct/custom schema when specific shapes are required - [Low11/6/2025
v0.31.3### New features - [a189ae6](https://github.com/bosun-ai/swiftide/commit/a189ae6de51571810f98cf58f9fdb58e7707f29a) *(integrations/openai)* Opt-in responses api ([#943](https://github.com/bosun-ai/swiftide/pull/943)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.31.2...0.31.3Low10/6/2025
v0.31.2### New features - [f35c9b5](https://github.com/bosun-ai/swiftide/commit/f35c9b507e11f76ff7e78de35843b3310a25f3db) *(agents)* Add builder lite methods to SystemPrompt - [9f533f5](https://github.com/bosun-ai/swiftide/commit/9f533f57b2c7ed4ac1988f9e3567cda42f64b824) *(agents)* Add helpers to retrieve or mutate the system prompt - [febb7eb](https://github.com/bosun-ai/swiftide/commit/febb7eb282af98ce1124636cb66a8819265e3585) *(agents)* Support appending any kind of string to default SystemProLow9/24/2025
v0.31.1### Docs - [866b77a](https://github.com/bosun-ai/swiftide/commit/866b77a8c33b6b7935f260c1df099d89492cb048) *(readme)* Use raw links for images so they work on crates/docs - [513c143](https://github.com/bosun-ai/swiftide/commit/513c143cd11ae6ddda48f73012844f1f6d026ef7) *(readme)* Remove double back-to-top **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.31.0...0.31.1Low9/16/2025
v0.31.0### New features - [ad6655d](https://github.com/bosun-ai/swiftide/commit/ad6655dc448defc3a9ef8401f0528da11e16a256) *(agents)* Add helper to remove default stop tool from agent builder - [708ebe4](https://github.com/bosun-ai/swiftide/commit/708ebe436b4d2e9456723cfc95557071f2c636c9) *(agents)* Implement From<SystemPrompt> for SystemPromptBuilder - [db79f21](https://github.com/bosun-ai/swiftide/commit/db79f21c323abca462a5f469814c4c03cc949b7e) *(agents/tasks)* Add helper to create instant tranLow9/16/2025
v0.30.1### Bug fixes - [0114573](https://github.com/bosun-ai/swiftide/commit/011457367b7bfdc207f1f6d9ebfcbf2a2de4ac58) *(agents)* Explicitly handle out of bounds and empty edge cases for message history - [1005ac2](https://github.com/bosun-ai/swiftide/commit/1005ac219e2078c6ee12b050a7e73d48ef7f46a5) *(core)* Export tokenizer traits from the root crate - [e4c01e1](https://github.com/bosun-ai/swiftide/commit/e4c01e14fbe89cb5a16beddcb3819b66c7f1a087) *(integrations/tiktoken)* Tiktoken feature flag iLow8/19/2025
v0.30.0### New features - [dc574b4](https://github.com/bosun-ai/swiftide/commit/dc574b41b259f430bb4dc38338416ea1aa9480bb) *(agents)* Multi agent setup with graph-like Tasks ([#861](https://github.com/bosun-ai/swiftide/pull/861)) - [8740762](https://github.com/bosun-ai/swiftide/commit/87407626ef75c254fae0a677148609738fd64ccc) *(agents)* Allow mutating an existing system prompt in the builder ([#887](https://github.com/bosun-ai/swiftide/pull/887)) - [4bbf207](https://github.com/bosun-ai/swiftide/comLow8/16/2025
v0.29.0### New features - [25a86fa](https://github.com/bosun-ai/swiftide/commit/25a86fa0403581c3c5ddc5bd237bee98f41bc153) *(agents)* Lots of utility functions for agents ([#862](https://github.com/bosun-ai/swiftide/pull/862)) - [a70840b](https://github.com/bosun-ai/swiftide/commit/a70840b4dca983bd23b54f1f7cf12b33d60b733c) *(openai)* Add helper to set the end user field for requests - [f8ddeba](https://github.com/bosun-ai/swiftide/commit/f8ddebaf57001671516db193140c2e5618000206) *(tree-sitter)* AdLow7/29/2025
v0.28.1### New features - [c671e6a](https://github.com/bosun-ai/swiftide/commit/c671e6aec7b381235f8450a8be0cbc766df72985) *(agents)* Add is_approved() and is_refused() to ToolFeedback ### Bug fixes - [68c5cda](https://github.com/bosun-ai/swiftide/commit/68c5cdafc6e457739bcfeb12d2810350659f2979) *(agents)* Prevent stack overflow when ToolExecutor has ambigious refs - [07198d2](https://github.com/bosun-ai/swiftide/commit/07198d26389e1606e6e0f552e411196f42cf6600) *(duckdb)* Resolve 'x is an existinLow7/1/2025
v0.28.0### New features - [9d11386](https://github.com/bosun-ai/swiftide/commit/9d11386c155773fcc77a60591cd57bc366044c71) Token usage metrics for embeddings, SimplePrompt and ChatCompletion with metric-rs ([#813](https://github.com/bosun-ai/swiftide/pull/813)) - [59c8b9c](https://github.com/bosun-ai/swiftide/commit/59c8b9cef721c3861a9d352c7fbef28e27d2f649) Stream files from tool executor for indexing ([#835](https://github.com/bosun-ai/swiftide/pull/835)) ### Bug fixes - [ba6ec04](https://github.Low6/30/2025
v0.27.2### New features - [66cd7e9](https://github.com/bosun-ai/swiftide/commit/66cd7e9349673a77d8cc79e6b5acab8d56078a42) *(qdrant)* Add support for a filter in hybrid search ([#830](https://github.com/bosun-ai/swiftide/pull/830)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.27.1...0.27.2Low6/29/2025
v0.27.1### Bug fixes - [0892151](https://github.com/bosun-ai/swiftide/commit/0892151d2d02c30e38fa8629c386eaf4475da7f8) *(duckdb)* Avoid panic if duckdb gets created twice ([#818](https://github.com/bosun-ai/swiftide/pull/818)) - [0815923](https://github.com/bosun-ai/swiftide/commit/081592334f2bd8c2da30535b4e1b51e8ddd15834) *(tool-executor)* Remove conflicting implementation of AsRef<str> for Output ### Miscellaneous - [2b64410](https://github.com/bosun-ai/swiftide/commit/2b644109796c8870d29fa1b54Low6/12/2025
v0.27.0### New features - [c636eba](https://github.com/bosun-ai/swiftide/commit/c636ebaa2eb8d4ace1b5a370698c5f2817fc9c99) *(agents)* [**breaking**] Context is now generic over its backend ([#810](https://github.com/bosun-ai/swiftide/pull/810)) **BREAKING CHANGE**: The signature is now slightly different for the AgentContext. If you have implemented your own for i.e. a persisted solution, if it's *just that*, the implementation is now a lot more straightforward with the `MessageHistory` trait. - [3cLow6/11/2025
v0.26.0### New features - [11051d5](https://github.com/bosun-ai/swiftide/commit/11051d5a1df6ea158ee84de274767fbdc70cc74e) *(agents)* `tools` on `Agent` is now public and can be used in hooks - [ebe68c1](https://github.com/bosun-ai/swiftide/commit/ebe68c104b8198b80ee5ee1f451c3272ce36841c) *(integrations)* Streaming chat completions for anthropic ([#773](https://github.com/bosun-ai/swiftide/pull/773)) - [7f5b345](https://github.com/bosun-ai/swiftide/commit/7f5b345115a3443afc9b32ca54a292fae3f5d38b) *Low5/6/2025
v0.25.1### Bug fixes - [7102091](https://github.com/bosun-ai/swiftide/commit/710209123ba6972cd11fb0f3d364c9c83478e184) *(agents)* AgentBuilder and AgentBuilderError should be public **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.25.0...0.25.1Low4/17/2025
v0.25.0### New features - [4959ddf](https://github.com/bosun-ai/swiftide/commit/4959ddfe00e0424215dd9bd3e8a6acb579cc056c) *(agents)* Restore agents from an existing message history ([#742](https://github.com/bosun-ai/swiftide/pull/742)) - [6efd15b](https://github.com/bosun-ai/swiftide/commit/6efd15bf7b88d8f8656c4017676baf03a3bb510e) *(agents)* Agents now take an Into Prompt when queried ([#743](https://github.com/bosun-ai/swiftide/pull/743)) ### Bug fixes - [5db4de2](https://github.com/boLow4/16/2025
v0.24.0### New features - [3117fc6](https://github.com/bosun-ai/swiftide/commit/3117fc62c146b0bf0949adb3cfe4e6c7f40427f7) Introduce LanguageModelError for LLM traits and an optional backoff decorator ([#630](https://github.com/bosun-ai/swiftide/pull/630)) ### Bug fixes - [0134dae](https://github.com/bosun-ai/swiftide/commit/0134daebef5d47035e986d30e1fa8f2c751c2c48) *(agents)* Gracefully stop mcp service on drop ([#734](https://github.com/bosun-ai/swiftide/pull/734)) ### Miscellaneous - [e872c5b]Low4/11/2025
v0.23.0### New features - [fca4165](https://github.com/bosun-ai/swiftide/commit/fca4165c5be4b14cdc3d20ed8215ef64c5fd69a9) *(agents)* Return typed errors and yield error in `on_stop` ([#725](https://github.com/bosun-ai/swiftide/pull/725)) - [29352e6](https://github.com/bosun-ai/swiftide/commit/29352e6d3dc51779f3202e0e9936bf72e0b61605) *(agents)* Add `on_stop` hook and `stop` now takes a `StopReason` ([#724](https://github.com/bosun-ai/swiftide/pull/724)) - [a85cd8e](https://github.com/bosun-ai/swifLow4/8/2025
v0.22.8### Bug fixes - [6b4dfca](https://github.com/bosun-ai/swiftide/commit/6b4dfca822f39b3700d60e6ea31b9b48ccd6d56f) Tool macros should work with latest darling version ([#712](https://github.com/bosun-ai/swiftide/pull/712)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.22.7...0.22.8Low4/2/2025
v0.22.7### Bug fixes - [b0001fb](https://github.com/bosun-ai/swiftide/commit/b0001fbb12cf6bb85fc4d5a8ef0968219e8c78db) *(duckdb)* Upsert is now opt in as it requires duckdb >= 1.2 ([#708](https://github.com/bosun-ai/swiftide/pull/708)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.22.6...0.22.7Low3/30/2025
v0.22.6### New features - [a05b3c8](https://github.com/bosun-ai/swiftide/commit/a05b3c8e7c4224c060215c34490b2ea7729592bf) *(macros)* Support optional values and make them even nicer to use ([#703](https://github.com/bosun-ai/swiftide/pull/703)) ### Bug fixes - [1866d5a](https://github.com/bosun-ai/swiftide/commit/1866d5a081f40123e607208d04403fb98f34c057) *(integrations)* Loosen up duckdb requirements even more and make it more flexible for version requirements ([#706](https://github.com/bosun-ai/sLow3/27/2025
v0.22.5### New features - [eb4e044](https://github.com/bosun-ai/swiftide/commit/eb4e0442293e17722743aa2b88d8dd7582dd9236) Estimate tokens for OpenAI like apis with tiktoken-rs ([#699](https://github.com/bosun-ai/swiftide/pull/699)) ### Miscellaneous - [345c57a](https://github.com/bosun-ai/swiftide/commit/345c57a663dd0d315a28f0927c5d598ba21d019d) Improve file loader logging ([#695](https://github.com/bosun-ai/swiftide/pull/695)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compLow3/26/2025
v0.22.4### Bug fixes - [4ec00bb](https://github.com/bosun-ai/swiftide/commit/4ec00bb0fed214f27629f32569406bfa2c786dd7) *(integrations)* Add chrono/utc feature flag when using qdrant ([#684](https://github.com/bosun-ai/swiftide/pull/684)) ````text The Qdrant integration calls chrono::Utc::now(), which requires the now feature flag to be enabled in the chrono crate when using qdrant ```` - [0b204d9](https://github.com/bosun-ai/swiftide/commit/0b204d90a68978bb4b75516c537a56d665771c55) Ensure `groq`Low3/17/2025
v0.22.3### Miscellaneous - [834fcd3](https://github.com/bosun-ai/swiftide/commit/834fcd3b2270904bcfe8998a7015de15626128a8) Update duckdb to 1.2.1 ([#680](https://github.com/bosun-ai/swiftide/pull/680)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.22.2...0.22.3Low3/13/2025
v0.22.2### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies - [e1c097d](https://github.com/bosun-ai/swiftide/commit/e1c097da885374ec9320c1847a7dda7c5d9d41cb) Disable default features on all dependencies ([#675](https://github.com/bosun-ai/swiftide/pull/675)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.22.1...0.22.2Low3/11/2025
v0.22.1### New features - [474d612](https://github.com/bosun-ai/swiftide/commit/474d6122596e71132e35fcb181302dfed7794561) *(integrations)* Add Duckdb support ([#578](https://github.com/bosun-ai/swiftide/pull/578)) ````text Adds support for Duckdb. Persist, Retrieve (Simple and Custom), and NodeCache are implemented. Metadata and full upsert are not. Once 1.2 has its issues fixed, it's easy to add. ```` - [4cf417c](https://github.com/bosun-ai/swiftide/commit/4cf417c6a818fbec2641ad6576bLow3/9/2025
v0.22.0### New features - [a754846](https://github.com/bosun-ai/swiftide/commit/a7548463367023d3e5a3a25dd84f06632b372f18) *(agents)* Implement Serialize and Deserialize for chat messages ````text Persist, retry later, evaluate it completions in a script, you name it. ```` - [0a592c6](https://github.com/bosun-ai/swiftide/commit/0a592c67621f3eba4ad6e0bfd5a539e19963cf17) *(indexing)* Add `iter()` for file loader ([#655](https://github.com/bosun-ai/swiftide/pull/655)) ````text Allows playing with theLow3/5/2025
v0.21.1### Bug fixes - [f418c5e](https://github.com/bosun-ai/swiftide/commit/f418c5ee2f0d3ee87fb3715ec6b1d7ecc80bf714) *(ci)* Run just a single real rerank test to please the flaky gods - [e387e82](https://github.com/bosun-ai/swiftide/commit/e387e826200e1bc0a608e1f680537751cfc17969) *(lancedb)* Update Lancedb to 0.17 and pin Arrow to a lower version ### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies **Full Changelog**: https://githLow2/28/2025
v0.21.0### New features - [12a9873](https://github.com/bosun-ai/swiftide/commit/12a98736ab171c25d860000bb95b1e6e318758fb) *(agents)* Improve flexibility for tool generation (#641) ````text Previously ToolSpec and name in the `Tool` trait worked with static. With these changes, there is a lot more flexibility, allowing for i.e. run-time tool generation. ```` ### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies **Full Changelog**: hLow2/25/2025
v0.20.1### Bug fixes - [0aa1248](https://github.com/bosun-ai/swiftide/commit/0aa124819d836f37d1fcaf88e6f88b5affb46cf9) *(indexing)* Handle invalid utf-8 in fileloader lossy (#632) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.20.0...0.20.1Low2/21/2025
v0.20.0### New features - [5d85d14](https://github.com/bosun-ai/swiftide/commit/5d85d142339d24c793bd89a907652bede0d1c94d) *(agents)* Add support for numbers, arrays and booleans in tool args (#562) ````text Add support for numbers, arrays and boolean types in the `#[swiftide_macros::tool]` attribute macro. For enum and object a custom implementation is now properly supported as well, but not via the macro. For now, tools using Derive also still need a custom implementation. ```` - Low2/19/2025
v0.19.0### New features - [fa5112c](https://github.com/bosun-ai/swiftide/commit/fa5112c9224fdf5984d26db669f04dedc8ebb561) *(agents)* By default retry failed tools with LLM up to 3 times (#609) ````text Specifically meant for LLMs sending invalid JSON, these tool calls are now retried by feeding back the error into the LLM up to a limit (default 3). ```` - [14f4778](https://github.com/bosun-ai/swiftide/commit/14f47780b4294be3a9fa3670aa18a952ad7e9d6e) *(integrations)* Parallel tool calling in OpLow2/13/2025
v0.18.2### New features - [50ffa15](https://github.com/bosun-ai/swiftide/commit/50ffa156e28bb085a61a376bab71c135bc09622f) Anthropic support for prompts and agents (#602) ### Bug fixes - [8cf70e0](https://github.com/bosun-ai/swiftide/commit/8cf70e08787d1376ba20001cc9346767d8bd84ef) *(integrations)* Ensure anthropic tool call format is consistent with specs ### Miscellaneous - [98176c6](https://github.com/bosun-ai/swiftide/commit/98176c603b61e3971ca5583f9f4346eb5b962d51) Clippy **Full ChangelogLow2/11/2025
v0.18.1### New features - [78bf0e0](https://github.com/bosun-ai/swiftide/commit/78bf0e004049c852d4e32c0cd67725675b1250f9) *(agents)* Add optional limit for agent iterations (#599) - [592e5a2](https://github.com/bosun-ai/swiftide/commit/592e5a2ca4b0f09ba6a9b20cef105539cb7a7909) *(integrations)* Support Azure openai via generics (#596) - [c8f2eed](https://github.com/bosun-ai/swiftide/commit/c8f2eed9964341ac2dad611fc730dc234436430a) *(tree-sitter)* Add solidity support (#597) **Full ChangLow2/9/2025
v0.18.0### New features - [de46656](https://github.com/bosun-ai/swiftide/commit/de46656f80c5cf68cc192d21b5f34eb3e0667a14) *(agents)* Add `on_start` hook (#586) - [c551f1b](https://github.com/bosun-ai/swiftide/commit/c551f1becfd1750ce480a00221a34908db61e42f) *(integrations)* OpenRouter support (#589) ````text Adds OpenRouter support. OpenRouter allows you to use any LLM via their own api (with a minor upsell). ```` ### Bug fixes - [3ea5839](https://github.com/bosun-ai/swiftide/commLow2/2/2025
v0.17.5### New features - [825a52e](https://github.com/bosun-ai/swiftide/commit/825a52e70a74e4621d370485346a78d61bf5d7a9) *(agents)* Tool description now also accepts paths (i.e. a const) (#580) ### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.lock dependencies - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.17.4...0.17.5Low1/27/2025
v0.17.4### Bug fixes - [0d9e250](https://github.com/bosun-ai/swiftide/commit/0d9e250e2512fe9c66d5dfd2ac688dcd56bd07e9) *(tracing)* Use `or_current()` to prevent orphaned tracing spans (#573) ````text When a span is emitted that would be selected by the subscriber, but we instrument its closure with a span that would not be selected by the subscriber, the span would be emitted as an orphan (with a new `trace_id`) making them hard to find and cluttering dashboards. This situation is also docuLow1/24/2025
v0.17.3### New features - [8e22442](https://github.com/bosun-ai/swiftide/commit/8e2244241f16fff77591cf04f40725ad0b05ca81) *(integrations)* Support Qdrant 1.13 (#571) ### Bug fixes - [c5408a9](https://github.com/bosun-ai/swiftide/commit/c5408a96fbed6207022eb493da8d2cbb0fea7ca6) *(agents)* Io::Error should always be a NonZeroExit error for tool executors (#570) ### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies - [0000000](https://giLow1/24/2025
v0.17.2### Bug fixes - [47db5ab](https://github.com/bosun-ai/swiftide/commit/47db5ab138384a6c235a90024470e9ab96751cc8) *(agents)* Redrive uses the correct pointer and works as intended **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.17.1...0.17.2Low1/21/2025
v0.17.1### New features - [e4e4468](https://github.com/bosun-ai/swiftide/commit/e4e44681b65b07b5f1e987ce468bdcda61eb30da) *(agents)* Implement AgentContext for smart dyn pointers - [70181d9](https://github.com/bosun-ai/swiftide/commit/70181d9642aa2c0a351b9f42be1a8cdbd83c9075) *(agents)* Add pub accessor for agent context (#558) - [274d9d4](https://github.com/bosun-ai/swiftide/commit/274d9d46f39ac2e28361c4881c6f8f7e20dd8753) *(agents)* Preprocess tool calls to fix common, fixable errors (#560) ``Low1/20/2025
v0.17.0### New features - [835c35e](https://github.com/bosun-ai/swiftide/commit/835c35e7d74811daa90f7ca747054d1919633058) *(agents)* Redrive completions manually on failure (#551) ````text Sometimes LLMs fail a completion without deterministic errors, or the user case where you just want to retry. `redrive` can now be called on a context, popping any new messages (if any), and making the messages available again to the agent. ```` - [f83f3f0](https://github.com/bosun-ai/swiftide/commit/f83f3fLow1/16/2025
v0.16.4### New features - [c919484](https://github.com/bosun-ai/swiftide/commit/c9194845faa12b8a0fcecdd65f8ec9d3d221ba08) Ollama via async-openai with chatcompletion support (#545) ````text Adds support for chatcompletions (agents) for ollama. SimplePrompt and embeddings now use async-openai underneath. Copy pasted as I expect some differences in the future. ```` ### Miscellaneous - [0000000](https://github.com/bosun-ai/swiftide/commit/0000000) Update Cargo.toml dependencies **Full ChangelogLow1/12/2025
v0.16.3### New features - [b66bd79](https://github.com/bosun-ai/swiftide/commit/b66bd79070772d7e1bfe10a22531ccfd6501fc2a) *(fastembed)* Add support for jina v2 code (#541) ````text Add support for jina v2 code in fastembed. ```` **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.16.2...0.16.3Low1/10/2025
v0.16.2### Bug fixes - [2226755](https://github.com/bosun-ai/swiftide/commit/2226755f367d9006870a2dea2063655a7901d427) Explicit cast on tools to Box<dyn> to make analyzer happy (#536) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.16.1...0.16.2Low1/9/2025
v0.16.1### Bug fixes - [d198bb0](https://github.com/bosun-ai/swiftide/commit/d198bb0807f5d5b12a51bc76721cc945be8e65b9) *(prompts)* Skip rendering prompts if no context and forward as is (#530) ````text Fixes an issue if strings suddenly include jinja style values by mistake. Bonus performance boost. ```` - [4e8d59f](https://github.com/bosun-ai/swiftide/commit/4e8d59fbc0fbe72dd0f8d6a95e6e335280eb88e3) *(redb)* Log errors and return uncached instead of panicing (#531) **Full Changelog**: https:/Low1/6/2025
v0.16.0### New features - [52e341e](https://github.com/bosun-ai/swiftide/commit/52e341ee9777d04f9fb07054980ba087c55c033e) *(lancedb)* Public method for opening table (#514) - [3254bd3](https://github.com/bosun-ai/swiftide/commit/3254bd34d0eeb038c8aa6ea56ac2940b3ca81960) *(query)* Generic templates with document rendering (#520) ````text Reworks `PromptTemplate` to a more generic `Template`, such that they can also be used elsewhere. This deprecates `PromptTemplate`. As an example, an optionalLow1/4/2025
v0.15.0### New features - [a1b9a2d](https://github.com/bosun-ai/swiftide/commit/a1b9a2d37715420d3e2cc80d731e3713a22c7c50) *(query)* Ensure concrete names for transformations are used when debugging (#496) - [7779c44](https://github.com/bosun-ai/swiftide/commit/7779c44de3581ac865ac808637c473525d27cabb) *(query)* Ensure query pipeline consistently debug logs in all other stages too - [55dde88](https://github.com/bosun-ai/swiftide/commit/55dde88df888b60a7ccae5a68ba03d20bc1f57df) *(query)* Debug fullLow12/24/2024
v0.14.4### New features - [7211559](https://github.com/bosun-ai/swiftide/commit/7211559936d8b5e16a3b42f9c90b42a39426be8a) *(agents)* **EXPERIMENTAL** Agents in Swiftide (#463) ````text Agents are coming to Swiftide! We are still ironing out all the kinks, while we make it ready for a proper release. You can already experiment with agents, see the rustdocs for documentation, and an example in `/examples`, and feel free to contact us via github or discord. Better documentation, examples, and tLow12/12/2024
v0.14.3### New features - [1774b84](https://github.com/bosun-ai/swiftide/commit/1774b84f00a83fe69af4a2b6a6daf397d4d9b32d) *(integrations)* Add PGVector support for indexing ([#392](https://github.com/bosun-ai/swiftide/pull/392)) **Full Changelog**: https://github.com/bosun-ai/swiftide/compare/0.14.2...0.14.3Low11/20/2024

Dependencies & License Audit

Loading dependencies...

Similar Packages

mem0Universal memory layer for AI Agentscli-node-v0.2.8
awesome-opensource-aiCurated list of the best truly open-source AI projects, models, tools, and infrastructure.main@2026-06-06
hubHigh-scale LLM gateway, written in Rust. OpenTelemetry-based observability included0.9.2
haystack-cookbook๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ A collection of example notebooks using Haystackmain@2026-06-01
mesh-llmDistributed AI/LLM for the people. Share compute privately or publicly to power your agents and chat.v0.71.0

More in RAG & Memory

vllmA high-throughput and memory-efficient inference and serving engine for LLMs
spiceaiA portable accelerated SQL query, search, and LLM-inference engine, written in Rust, for data-grounded AI apps and agents.
awesome-opensource-aiCurated list of the best truly open-source AI projects, models, tools, and infrastructure.
antflyNo description