GraphCanon updated 3d · GitHub synced 3d · 26 views this month
Decision brief
Typesense is an open-source and type-tolerant fuzzy search engine written in C++, primarily suitable for applications requiring speedy search responses with high tolerance to typos.
Good fit when
- When seeking a drop-in replacement or alternative for Algolia, especially if considering an open-source solution.
- In scenarios where the development team has extensive experience with C++ and wants optimal performance from the language's native capabilities.
Avoid when
- If the project is working with a smaller dataset where setting up an additional service could be overkill and simplicity outweighs high performance.
- When the team prefers not to use GPL-3.0 licensed software, as this may pose limitations or requirements on how the code can be used or distributed.
- Hosting:
- self hosted - Self-hosting on-premises or in-cloud environments, enabling full control over data and infrastructure.
Observed Jul 11, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Very active (4d since push)
- As of 3d
- Provenance
- Not a fork · Organization account
- As of 3d
- Security (OSV)
- No lockfile
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
git clone https://github.com/typesense/typesenseHow it fits your stack(1)
Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.
Relationship graph
Optional deeper exploration of typed edges and category neighbours.
Similar tools
Same-category neighbours not already linked as typed edges.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
An open-source alternative to Algolia and Pinecone, offering typo tolerance and fast in-memory fuzzy search capabilities.
Capability facts
- Languages
- c++
Source: github.language · Aug 23, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Aug 23, 2026)
We have [API Clients](#api-clients) in a couple of languages, but let's use the Python client for this example.Source link
Tags
README
Install
Option 1: You can download the binary packages that we publish for Linux (x86_64 & arm64) and Mac (x86_64).
Option 2: You can also run Typesense from our official Docker image.
Option 3: Spin up a managed cluster with Typesense Cloud:
Quick Start
Here's a quick example showcasing how you can create a collection, index a document and search it on Typesense.
Let's begin by starting the Typesense server via Docker:
docker run -p 8108:8108 -v/tmp/data:/data typesense/typesense:29.0 --data-dir /data --api-key=Hu52dwsas2AdxdE
We have API Clients in a couple of languages, but let's use the Python client for this example.
Install the Python client for Typesense:
pip install typesense
We can now initialize the client and create a companies collection:
import typesense
client = typesense.Client({
'api_key': 'Hu52dwsas2AdxdE',
'nodes': [{
'host': 'localhost',
'port': '8108',
'protocol': 'http'
}],
'connection_timeout_seconds': 2
})
create_response = client.collections.create({
"name": "companies",
"fields": [
{"name": "company_name", "type": "string" },
{"name": "num_employees", "type": "int32" },
{"name": "country", "type": "string", "facet": True }
],
"default_sorting_field": "num_employees"
})
Now, let's add a document to the collection we just created:
document = {
"id": "124",
"company_name": "Stark Industries",
"num_employees": 5215,
"country": "USA"
}
client.collections['companies'].documents.create(document)
Finally, let's search for the document we just indexed:
search_parameters = {
'q' : 'stork',
'query_by' : 'company_name',
'filter_by' : 'num_employees:>100',
'sort_by' : 'num_employees:desc'
}
client.collections['companies'].documents.search(search_parameters)
Did you notice the typo in the query text? No big deal. Typesense handles typographic errors out-of-the-box!
Why the GPL license?
From our experience companies are generally concerned when libraries they use are GPL licensed, since library code is directly integrated into their code and will lead to derivative work and trigger GPL compliance. However, Typesense Server is server software and we expect users to typically run it as a separate daemon, and not integrate it with their own code. GPL covers and allows for this use case generously (eg: Linux is GPL licensed). Now, AGPL is what makes server software accessed over a network result in derivative work and not GPL. And for that reason we’ve opted to not use AGPL for Typesense.
Now, if someone makes modifications to Typesense server, GPL actually allows you to still keep the modifications to yourself as long as you don't distribute the modified code. So a company can for example modify Typesense server and run the modified code internally and still not have to open source their modifications, as long as they make the modified code available to everyone who has access to the modified software.
Now, if someone makes modifications to Typesense server and distributes the modifications, that's where GPL kicks in. Given that we’ve published our work to the community, we'd like for others' modifications to also be made open to the community in the spirit of open source. We use GPL for this purpose. Other licenses would allow our open source work to be modified, made closed source and distributed, which we want to avoid with Typesense for the project’s long term sustainability.
Here's more background on why GPL, as described by Discourse: https://meta.discourse.org/t/why-gnu-license/2531. Many of the points mentioned there resonate with us.
For agents
This page has a .md twin and JSON over the API.