MCPcopy Create free account
hub / github.com/cliqz-oss/keyvi

github.com/cliqz-oss/keyvi @v0.2.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.4 ↗ · + Follow
12,908 symbols 26,012 edges 1,271 files 1,300 documented · 10% updated 7y agov0.2.4 · 2017-08-31★ 1779 open issues

Browse by type

Functions 9,587 Types & classes 3,321
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Keyvi is developed and maintained by Cliqz Engineering Team and Hendrik Muhs. Cliqz is a provider of innovative, privacy-focused browser technologies with integrated quick-search functionality and anti-tracking.

Travis C++ PythonVersions PythonImpl PythonFormat PyPIVersion Coveralls

Keyvi

Keyvi - the short form for "Key value index" - defines a special subtype of the popular key value store (KVS) technologies. As you can imagine from the name, keyvi is an immutable key value store, therefore an index not a store. Keyvi's strengths: high compression ratio and extreme scalability. So if you need online read/writes keyvi is not for you, however, if your use case is mostly reads and infrequent writes you might be interested in checking keyvi out.

Introduction

Install

Quick

Precompiled binary wheels are available for OS X and Linux on PyPi. To install use:

pip install pykeyvi

From Source

The core part is a C++ header-only library, but the TPIE 3rdparty library needs to be compiled once. The commandline tools are also part of the C++ code. For instructions check the Readme file.

For the python extension pykeyvi check the Readme file in the pykeyvi subfolder.

Usage

Internals

If you like to go deep down in the basics, keyvi is inspired by the following 2 papers:

  • Sparse Array (See Storing a Sparse Table, Robert E. Tarjan et al. http://infolab.stanford.edu/pub/cstr/reports/cs/tr/78/683/CS-TR-78-683.pdf)
  • Incremental, which means minimization is done on the fly (See Incremental Construction of Minimal Acyclic Finite-State Automata, J. Daciuk et al.: http://www.mitpressjournals.org/doi/pdf/10.1162/089120100561601)

Licence and 3rdparty dependencies

keyvi is licenced under apache license 2.0, see licence for details.

In addition keyvi uses 3rdparty libraries which define their own licence. Please check their respective licence. The 3rdparty libraries can be found at keyvi/3rdparty.

Contributing

  • Bug reports, feature requests and general question can be added as an Issue.

  • PRs are welcome.

  • Questions? Concerns? Feel free to contact us.

Core symbols most depended-on inside this repo

Shape

Method 7,898
Class 3,232
Function 1,689
Enum 89

Languages

C++99%
Python1%
C1%

Modules by API surface

keyvi/3rdparty/msgpack-c/include/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp3,407 symbols
keyvi/3rdparty/tpie/test/unit/test_pipelining.cpp229 symbols
keyvi/3rdparty/rapidjson/include/rapidjson/document.h198 symbols
keyvi/3rdparty/msgpack-c/include/msgpack/adaptor/detail/cpp03_define_array.hpp173 symbols
keyvi/3rdparty/rapidjson/include/rapidjson/schema.h135 symbols
keyvi/3rdparty/msgpack-c/include/msgpack/unpack.hpp108 symbols
keyvi/3rdparty/tpie/tpie/pipelining/helpers.h96 symbols
keyvi/3rdparty/tpie/tpie/pipelining/runtime.cpp90 symbols
keyvi/3rdparty/tpie/tpie/deadcode/kdtree.h88 symbols
keyvi/3rdparty/msgpack-c/include/msgpack/adaptor/detail/cpp03_define_map.hpp87 symbols
keyvi/3rdparty/tpie/tpie/deadcode/btree.h82 symbols
keyvi/3rdparty/rapidjson/include/rapidjson/reader.h82 symbols

For agents

$ claude mcp add keyvi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page