{"data":{"slug":"typesense-typesense","name":"typesense","tagline":"Fast, typo tolerant, in-memory fuzzy Search Engine","github_url":"https://github.com/typesense/typesense","owner":"typesense","repo":"typesense","owner_avatar_url":"https://avatars.githubusercontent.com/u/19822348?v=4","primary_language":"C++","stars":26475,"forks":963,"topics":["algolia","datastore","elasticsearch","enterprise-search","faceting","full-text-search","fuzzy-search","geosearch","in-memory","instantsearch","merchandising","pinecone","search","search-engine","semantic-search","similarity-search","site-search","synonyms","typo-tolerance","vector-search"],"archived":false,"github_pushed_at":"2026-08-18T10:20:20+00:00","maintenance_label":"Very active","stars_delta_30d":128,"url":"https://www.graphcanon.com/tools/typesense-typesense","markdown_url":"https://www.graphcanon.com/tools/typesense-typesense.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/typesense-typesense","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=typesense-typesense","description":"Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences","homepage_url":"https://typesense.org","license":"GPL-3.0","open_issues":872,"watchers":134,"ai_summary":"An open-source alternative to Algolia and Pinecone, offering typo tolerance and fast in-memory fuzzy search capabilities.","readme_excerpt":"## Install\n\n**Option 1:** You can download the [binary packages](https://typesense.org/downloads) that we publish for \nLinux (x86_64 & arm64) and Mac (x86_64).\n\n**Option 2:** You can also run Typesense from our [official Docker image](https://hub.docker.com/r/typesense/typesense).\n\n**Option 3:** Spin up a managed cluster with [Typesense Cloud](https://cloud.typesense.org):\n\n<a href=\"https://cloud.typesense.org\"><img src=\"assets/deploy_with_typesense_cloud.svg?raw=true\" alt=\"Deploy with Typesense Cloud\" height=\"60\" /></a>\n\n---\n\n## Quick Start\n\nHere's a quick example showcasing how you can create a collection, index a document and search it on Typesense.\n \nLet's begin by starting the Typesense server via Docker:\n\n```\ndocker run -p 8108:8108 -v/tmp/data:/data typesense/typesense:29.0 --data-dir /data --api-key=Hu52dwsas2AdxdE\n```\n\nWe have [API Clients](#api-clients) in a couple of languages, but let's use the Python client for this example.\n\nInstall the Python client for Typesense:\n \n```\npip install typesense\n```\n\nWe can now initialize the client and create a `companies` collection:\n\n```python\nimport typesense\n\nclient = typesense.Client({\n  'api_key': 'Hu52dwsas2AdxdE',\n  'nodes': [{\n    'host': 'localhost',\n    'port': '8108',\n    'protocol': 'http'\n  }],\n  'connection_timeout_seconds': 2\n})\n\ncreate_response = client.collections.create({\n  \"name\": \"companies\",\n  \"fields\": [\n    {\"name\": \"company_name\", \"type\": \"string\" },\n    {\"name\": \"num_employees\", \"type\": \"int32\" },\n    {\"name\": \"country\", \"type\": \"string\", \"facet\": True }\n  ],\n  \"default_sorting_field\": \"num_employees\"\n})\n```\n\nNow, let's add a document to the collection we just created:\n\n```python\ndocument = {\n \"id\": \"124\",\n \"company_name\": \"Stark Industries\",\n \"num_employees\": 5215,\n \"country\": \"USA\"\n}\n\nclient.collections['companies'].documents.create(document)\n```\n\nFinally, let's search for the document we just indexed:\n\n```python\nsearch_parameters = {\n  'q'         : 'stork',\n  'query_by'  : 'company_name',\n  'filter_by' : 'num_employees:>100',\n  'sort_by'   : 'num_employees:desc'\n}\n\nclient.collections['companies'].documents.search(search_parameters)\n```\n\n**Did you notice the typo in the query text?** No big deal. Typesense handles typographic errors out-of-the-box!\n\n---\n\n### Why the GPL license?\n\nFrom 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. \n\nNow, 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.\n\nNow, 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.\n\nHere'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.","github_created_at":"2017-01-18T08:01:47+00:00","created_at":"2026-07-11T11:32:55.23728+00:00","updated_at":"2026-08-23T00:01:01.738959+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"}],"tags":[{"slug":"algolia","name":"algolia"},{"slug":"datastore","name":"datastore"},{"slug":"elastic-search","name":"elastic-search"},{"slug":"faceting","name":"faceting"},{"slug":"full-text-search","name":"full-text-search"},{"slug":"fuzzy-search","name":"fuzzy-search"},{"slug":"geo-search","name":"geo-search"},{"slug":"in-memory","name":"in-memory"}],"trust":{"provenance":{"is_fork":false,"github_id":79317191,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-23T00:01:00.982Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":0,"days_since_push":4,"last_release_at":"2026-04-19T16:00:09Z","stars_delta_30d":128,"open_issues_delta_30d":20},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:32:56.339Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-08-23T00:01:01.447Z"},"languages":{"value":["c++"],"source":"github.language","observed_at":"2026-08-23T00:01:01.447Z"},"license_spdx":{"value":"GPL-3.0","source":"github.license","observed_at":"2026-08-23T00:01:01.447Z"}},"decision_facts":{"hosting":{"model":"self_hosted","summary":"Self-hosting on-premises or in-cloud environments, enabling full control over data and infrastructure."},"pricing":null,"requirements":null,"constraints":{"hosting_model":"self_hosted"},"when_to_use":["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.","For projects that value typo tolerance in search functionalities heavily, as Typesense excels in handling typos without sacrificing search quality."],"when_not_to_use":["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.","In projects requiring complex vector search functionalities that might need more than what Typesense offers in its current feature set."],"source":"enrich:decision_facts","observed_at":"2026-07-11T13:34:30.057Z"},"constraint_facets":{"hosting_model":"self_hosted"},"decision_summary":[{"label":"Hosting","value":"self hosted - Self-hosting on-premises or in-cloud environments, enabling full control over data and infrastructure."},{"label":"Adopt for","value":"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."},{"label":"License detail","value":"GPL-3.0 License ensures typesense is free to use, modify and distribute as long as those changes are made available under the same licensing terms."}]}}