Skip to content

Integrations

Each Swiftide integration sits behind its own feature flag. The matrix below shows which flag to add, what the integration plugs into, and where its guide is. An integration is a model provider, storage backend, node cache, loader, transformer, agent tool, token estimator or observability layer that lives behind a feature flag of the swiftide crate.

Name the feature flags of the integrations you use when you add swiftide:

Terminal window
cargo add swiftide@0.34 --features qdrant,fastembed

Feature flags are additive. Each one compiles its integration and the flags it depends on. Without its flag, an integration’s module does not exist: swiftide::integrations::qdrant needs qdrant. Only macros is on by default.

Most integrations live under swiftide::integrations, which re-exports the swiftide-integrations crate with the same feature names. A few sit elsewhere. MCP (Model Context Protocol) tools are in swiftide::agents::tools::mcp, Langfuse is under swiftide::langfuse, and the tree-sitter transformers are also re-exported under swiftide::indexing::transformers.

Some flags turn on other flags:

  • groq, gemini, ollama, open-router and dashscope each turn on openai. Their clients build on the OpenAI client.
  • mcp and langfuse each turn on swiftide-agents, which turns on swiftide-tasks. You do not need to add swiftide-agents next to them.

Some flags compile native code or large SDKs (software development kits) and make builds slower:

  • fastembed downloads ONNX (Open Neural Network Exchange) Runtime binaries at build time.
  • lancedb compiles an embedded database. It also needs a protoc binary on your PATH at build time.
  • duckdb links a DuckDB library that is already on your system. Point DUCKDB_LIB_DIR at it, make it findable through pkg-config, or set DUCKDB_DOWNLOAD_LIB=1 to download it during the build.
  • kafka builds librdkafka from source with CMake.
  • fluvio compiles the Fluvio client.
  • aws-bedrock compiles the AWS (Amazon Web Services) SDK.

Turn these on only in the crates that need them.

The all flag turns on ten common integrations, but not anthropic, lancedb, mcp or swiftide-agents. It also includes fastembed and aws-bedrock, so it builds slowly. The all bundle lists exactly what it includes.

The HTTP (Hypertext Transfer Protocol) clients use rustls for TLS (Transport Layer Security) and need no setup: each uses the rustls crypto provider your application installed, or else its own. The exception is Redis over rediss://, where Swiftide installs aws-lc-rs as the process-wide provider before connecting if none is installed, so install yours before the first Redis call to use another.

The fastembed model download goes through native TLS, which means OpenSSL on Linux.

Every flag, type and example in the matrix matches Swiftide 0.34.

  • Integration names the provider or backend, with a short note.
  • Feature flag is the flag to pass to cargo add.
  • Provides says where the integration plugs in:
    • LLM: a large language model (LLM) client for prompts, chat completions and agents (SimplePrompt, ChatCompletion).
    • Embeddings and Sparse embeddings: an embedder for dense or sparse vectors (EmbeddingModel, SparseEmbeddingModel).
    • Structured output: typed responses through StructuredPrompt.
    • Storage: a backend that the indexing pipeline stores nodes in (Persist).
    • Retrieval: a retriever for the query pipeline (Retrieve). The storage guide for each backend lists the search strategies it supports.
    • Node cache: a node cache that skips nodes an indexing pipeline has already processed (NodeCache).
    • Loader: a loader that produces nodes (Loader).
    • Transformers: transformers and chunkers for the indexing pipeline.
    • Reranking: a response transformer that reorders retrieved documents (TransformResponse).
    • Agent tooling: tools for agents, or token estimation.
    • Observability: traces or metrics.
  • Main types are the types you build. Each links to docs.rs for the pinned release.
  • Examples link to example files in the Swiftide repository at the pinned commit.
  • Guide is the page on this site that shows the integration in use.
IntegrationFeature flagProvidesMain typesExamplesGuide
OpenAI: Chat Completions and the Responses API; Azure OpenAI through GenericOpenAI with AzureConfig.openaiLLM, Embeddings, Structured outputOpenAI, GenericOpenAIresponses_api.rs, responses_api_reasoning.rs, structured_prompt.rs, describe_image.rsintegrations/openai
AnthropicanthropicLLMAnthropicstreaming_agents.rsintegrations/anthropic
AWS Bedrock: Uses the Bedrock Converse API.aws-bedrockLLM, Structured outputAwsBedrockaws_bedrock.rs, aws_bedrock_agent.rsintegrations/aws-bedrock
Groq: OpenAI-compatible client preconfigured for Groq.groqLLM, Structured outputGroqindex_groq.rsintegrations/openai-compatible
Google Gemini: OpenAI-compatible client preconfigured for the Gemini API.geminiLLM, Embeddings, Structured outputGeminihello_agents.rsintegrations/openai-compatible
Ollama: OpenAI-compatible client preconfigured for a local Ollama server.ollamaLLM, Embeddings, Structured outputOllamaindex_ollama.rs, index_md_into_pgvector.rsintegrations/openai-compatible
OpenRouter: OpenAI-compatible client preconfigured for OpenRouter.open-routerLLM, Structured outputOpenRouter-integrations/openai-compatible
Dashscope: OpenAI-compatible client preconfigured for Alibaba Dashscope.dashscopeLLM, Embeddings, Structured outputDashscopedashscope.rsintegrations/openai-compatible
FastEmbed: Runs dense, sparse and reranking models locally with ONNX Runtime.fastembedEmbeddings, Sparse embeddings, RerankingFastEmbed, Rerankfastembed.rs, hybrid_search.rs, reranking.rsintegrations/fastembed
Qdrant: Similarity and hybrid (dense + sparse) search, named vectors, filters.qdrantStorage, RetrievalQdrantindex_codebase.rs, hybrid_search.rs, store_multiple_vectors.rsintegrations/qdrant
PgVectorpgvectorStorage, RetrievalPgVectorindex_md_into_pgvector.rsintegrations/pgvector
LanceDB: Embedded, no server required; also supports custom queries.lancedbStorage, RetrievalLanceDBlancedb.rs, dashscope.rsintegrations/lancedb
DuckDB: Embedded; similarity and hybrid search.duckdbStorage, Retrieval, Node cacheDuckdb-indexing/storage
Redis: Also stores agent message history.redisStorage, Node cacheRedisindex_into_redis.rs, index_codebase.rsindexing/caching
Redb: Embedded node cache, no server required.redbNode cacheRedb-indexing/caching
KafkakafkaLoader, StorageKafkakafka.rsindexing/loading
FluviofluvioLoaderFluviofluvio.rsindexing/loading
ParquetparquetLoaderParquet-indexing/loading
Scraping (spider)scrapingLoader, TransformersScrapingLoader, HtmlToMarkdownTransformerscraping_index_to_markdown.rsindexing/loading
Tree-sitter: Code-aware chunking, outlines and metadata; Perl behind tree-sitter-perl.tree-sitterTransformersChunkCode, MetadataQACode, OutlineCodeTreeSitter, MetadataRefsDefsCodeindex_codebase.rs, index_codebase_reduced_context.rsintegrations/tree-sitter
MCP: Exposes the tools of any MCP server (via rmcp) to an agent.mcpAgent toolingMcpToolboxagents_mcp_tools.rsagents/mcp
tiktoken: Token estimation with OpenAI tokenizers.tiktokenAgent toolingTikToken-models/errors-backoff-and-usage
Langfuse: A tracing layer that sends agent and pipeline spans to Langfuse.langfuseObservabilityLangfuseLayerlangfuse.rsobservability/langfuse
Metrics: Emits usage and pipeline metrics through the metrics crate facade.metricsObservability-usage_metrics.rsobservability/metrics-and-statistics

This section has a page for each of these integrations:

  • OpenAI and Azure: Chat Completions, the Responses API (application programming interface), and Azure OpenAI.
  • OpenAI-compatible providers: Groq, Gemini, Ollama, OpenRouter, Dashscope and any OpenAI-compatible gateway.
  • Anthropic: prompts, chat completions, streaming and agents with Claude.
  • AWS Bedrock: Bedrock models through the Converse API.
  • FastEmbed: dense and sparse embeddings and reranking on your CPU (central processing unit).
  • Qdrant: storage with similarity and hybrid search.
  • PgVector: storage in Postgres with the pgvector extension.
  • LanceDB: an embedded vector store in a local directory.
  • Tree-sitter: chunking, outlines and metadata for source code.

The other integrations are covered on the page for the feature they serve. The Guide column in the matrix links to each one: DuckDB, Redis and Redb with storage and caching, Kafka, Fluvio, Parquet and scraping with loading, MCP with agents, tiktoken with model usage, and Langfuse and metrics with observability.

OpenAI and Azure