MCPcopy Index your code
hub / github.com/distkv-project/distkv

github.com/distkv-project/distkv @0.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.3 ↗ · + Follow
998 symbols 3,898 edges 187 files 106 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://github.com/distkv-project/distkv/raw/0.1.3/docs/res/distkv_logo.png" width="282" height="170">

distkv build codebeat badge codecov

A distributed key-value in-memory store system with table concept.

Project Description

Distkv project is a distributed key-value in-memory database system. Besides these features, Distkv supports table concept which looks like tables in relational databases. It also supports a rich ecosystem, named Pine, which has many easy-to-use and out-of-the-box components for Web application and micro-service.

Full document is https://distkv.com

Awesome Features

  1. Redis-like data structure
  2. Table concept based on kv store
  3. Strong consistency
  4. Easy to use clients
  5. Strong ecosystem for Web application and micro-service

Quick Started

1. Install DistKV

Running scripts/install_distkv.sh will install the whole DistKV to your machine.

./scripts/install_distkv.sh

When we connect to the server, we must first start the server. At present, we only have two kinds of clients. One is Command Line Tool, another is Java Client SDK. We can use either of them to access the Distkv server.

2. Start DistKV Server

[root@localhost ~]# dkv-server

3. Start DistKV Cli

[root@localhost ~]# dkv-cli

4. Command Line Tool

dkv-cli > str.put "k1" "v1"
dkv-cli > ok
dkv-cli > str.get "k1" 
dkv-cli > "v1"

dkv-cli > list.put "k1" "v1" "v2" "v3"
dkv-cli > ok
dkv-cli > list.get "k1"
dkv-cli > ["v1", "v2", "v3"]

dkv-cli > set.put "k1" "v1" "v2" "v3"
dkv-cli > ok
dkv-cli > set.get "k1"
dkv-cli > {"v1", "v2", "v3"}

dkv-cli > dict.put "dict1" "k1" "v1" "k2" "v2"
dkv-cli > ok
dkv-cli > dict.get "dict1"
dkv-cli > { "k1" : "v1", "k2" : "v2"}

dkv-cli > slist.put "k1" "m1" 4 "m2" -4 "m3" 0
dkv-cli > ok
dkv-cli > slist.top "k1" 2
dkv-cli > [("m1", 4), ("m3", 0)]
dkv-cli > slist.getMember "k1" "m2"
dkv-cli > ("m2", -4), 3rd

Java Client SDK

Java Client SDK Example

Java Async Client SDK

Java Async Client SDK Example

Getting Involved

Thank you for your attention to the Distkv project. If you have any questions, you can create a new issue in our Issues list. We also welcome you to participate in our Distkv project, if you want to make contributions, you can refer the file CONTRIBUTING.md.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 808
Class 167
Interface 14
Function 5
Enum 4

Languages

Java99%
Python1%

Modules by API surface

parser/src/main/java/com/distkv/parser/DistkvNewSqlListener.java39 symbols
client/src/main/java/com/distkv/client/commandlinetool/CommandExecutorHandler.java33 symbols
core/src/main/java/com/distkv/core/struct/slist/SortedListLinkedImpl.java19 symbols
core/src/main/java/com/distkv/core/block/Block.java17 symbols
test/src/test/java/com/distkv/benchmark/core/concepts/DistkvSortedListsImplSimpleBenchmark.java14 symbols
parser/src/test/java/com/distkv/parser/ParseListCommandTest.java13 symbols
client/src/main/java/com/distkv/client/DefaultDistkvClient.java13 symbols
client/src/main/java/com/distkv/asyncclient/DefaultAsyncClient.java13 symbols
server/src/main/java/com/distkv/server/metaserver/server/statemachine/DmetaStateMachine.java12 symbols
core/src/main/java/com/distkv/core/block/BlockPool.java12 symbols
client/src/main/java/com/distkv/client/DistkvClient.java12 symbols
client/src/main/java/com/distkv/asyncclient/DistkvAsyncClient.java12 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page