search logo

search

kelindar/search

Go library for embedded vector search and semantic embeddings with llamacpp

GraphCanon updated today · GitHub synced today

558 stars24 forksLast push 5mo Go MIT

Decision brief

search is a Go library enabling embedded vector search and semantic embeddings via the llama.cpp framework.

Good fit when

  • Use for projects needing a lightweight, fast integration of semantic search capabilities within applications written in Go
  • Consider if your project benefits from the direct use of llamacpp for creating embeddings, emphasizing efficiency in embedding generation

Avoid when

  • Avoid if relying on out-of-the-box support beyond Go or requiring heavy customization that is not supported directly by llama.cpp's capabilities
  • Not suitable when a more comprehensive database service with extensive querying and integration features is desired over an embedded solution

Observed Jul 17, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Slowing (169d since push)
As of today
Provenance
Not a fork · Personal account
As of today
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

go get github.com/kelindar/search
pkg.go.dev

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

Provides tools in Go for embedding vector search and creating semantic embeddings using the llama.cpp framework.

Capability facts

Languages
go

Source: github.language · Aug 23, 2026

Categories

Tags

README


Go Version PkgGoDev Go Report Card License Coverage

Semantic Search

This library was created to provide an easy and efficient solution for embedding and vector search, making it perfect for small to medium-scale projects that still need some serious semantic power. It’s built around a simple idea: if your dataset is small enough, you can achieve accurate results with brute-force techniques, and with some smart optimizations like SIMD, you can keep things fast and lean.

The library’s strength lies in its simplicity and support for GGUF BERT models, letting you leverage sophisticated embeddings without getting bogged down by the complexities of traditional search systems. It offers GPU acceleration, enabling quick computations on supported hardware. If your dataset has fewer than 100,000 entries, this library is a great fit for integrating semantic search into your Go applications with minimal hassle.

🚀 Key Features

  • llama.cpp without cgo: The library is built to work with llama.cpp without using cgo. Instead, it relies on purego , which allows calling shared C libraries directly from Go code without the need for cgo. This design significantly simplifies the integration, deployment, and cross-compilation, making it easier to build Go applications that interface with native libraries.
  • Support for BERT Models: The library supports BERT models via llama.cpp. Vast variations of BERT models can be used, as long as they are using GGUF format.
  • Precompiled Binaries with Vulkan GPU Support: Available for Windows and Linux in the dist directory, compiled with Vulkan for GPU acceleration. However, you can compile the library yourself with or without GPU support.
  • Search Index for Embeddings: The library supports the creation of a search index from computed embeddings, which can be saved to disk and loaded later. This feature is suitable for basic vector-based searches in small-scale applications, but it may face efficiency challenges with large datasets due to the use of brute-force techniques.

🤔 Limitations

While simple vector search excels in small-scale applications,avoid using this library if you have the following requirements.

  • Large Datasets: The current implementation is designed for small-scale applications, and datasets exceeding 100,000 entries may suffer from performance bottlenecks due to the brute-force search approach. For larger datasets, approximate nearest neighbor (ANN) algorithms and specialized data structures should be considered for efficiency.
  • Complex Query Requirements: The library focuses on simple vector similarity search and does not support advanced query capabilities like multi-field filtering, fuzzy matching, or SQL-like operations that are common in more sophisticated search engines.
  • High-Dimensional Complex Embeddings: Large language models (LLMs) generate embeddings that are both high-dimensional and computationally intensive. Handling these embeddings in real-time can be taxing on the system unless sufficient GPU resources are available and optimized for low-latency infer

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.