MCPcopy Index your code
hub / github.com/basho/riak-go-client

github.com/basho/riak-go-client @1.9.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.9.1 ↗ · + Follow
2,013 symbols 6,397 edges 74 files 684 documented · 34% updated 7y ago1.9.1 · 2017-03-27★ 892 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Riak Go Client

The Riak Go Client is a client which makes it easy to communicate with Riak, an open source, distributed database that focuses on high availability, horizontal scalability, and predictable latency. Both Riak and this code is maintained by Basho.

The latest version of the client supports both Riak KV 2.0+, and Riak TS 1.0+.

Build Status

Build Status

Installation

go get github.com/basho/riak-go-client

Documentation

Testing / Contributing

This repository's maintainers are engineers at Basho and we welcome your contribution to the project! Review the details in CONTRIBUTING.md in order to give back to this project.

Note: Please clone this repository in such a manner that submodules are also cloned:

git clone --recursive https://github.com/basho/riak-go-client

OR:

git clone https://github.com/basho/riak-go-client
git submodule init --update

Unit Tests

make unit-test

Integration Tests

You have two options to run Riak locally - either build from source, or use a pre-installed Riak package.

Source

To setup the default test configuration, build a Riak node from a clone of github.com/basho/riak:

# check out latest release tag
git checkout riak-2.1.4
make locked-deps
make rel

Source build documentation.

When building from source, the protocol buffers port will be 8087 and HTTP will be 8098.

Package

Install using your platform's package manager (docs)

When installing from a package, the protocol buffers port will be 8087 and HTTP will be 8098.

Running Integration Tests

  • Ensure you've initialized this repo's submodules:
git submodule update --init
  • Run the following:
./tools/setup-riak
make integration-test

This repository's maintainers are engineers at Basho and we welcome your contribution to the project! Review the details in CONTRIBUTING.md in order to give back to this project.

An honest disclaimer

Due to our obsession with stability and our rich ecosystem of users, community updates on this repo may take a little longer to review.

The most helpful way to contribute is by reporting your experience through issues. Issues may not be updated while we review internally, but they're still incredibly appreciated.

Thank you for being part of the community! We love you for it.

Roadmap

  • 1.0.0 - Full Riak 2 support with command queuing and retries.

License

The Riak Go Client is Open Source software released under the Apache 2.0 License. Please see the LICENSE file for full license details.

These excellent community projects inspired this client and parts of their code are in riak-go-client as well:

Authors

Contributors

Thank you to all of our contributors!

Extension points exported contracts — how you extend this code

CommandBuilder (Interface)
CommandBuilder interface requires Build() method for generating the Command to be executed [34 implementers]
command.go
ConflictResolver (Interface)
FetchValue RpbGetReq RpbGetResp ConflictResolver is an interface to handle sibling conflicts for a key [2 implementers]
kv_commands.go
NodeManager (Interface)
NodeManager enforces the structure needed to if going to implement your own NodeManager [1 implementers]
node_manager.go
Command (Interface)
Command interface enforces proper structure of a Command object
command.go

Core symbols most depended-on inside this repo

Error
called by 649
command.go
Build
called by 199
command.go
WithBucket
called by 128
kv_commands.go
Execute
called by 106
client.go
WithBucketType
called by 92
kv_commands.go
WithKey
called by 83
crdt_commands.go
logDebug
called by 75
logging.go
constructPbRequest
called by 55
command.go

Shape

Method 1,417
Function 357
Struct 221
Interface 10
TypeAlias 8

Languages

Go100%

Modules by API surface

rpb/riak_kv/riak_kv.pb.go310 symbols
crdt_commands.go198 symbols
kv_commands.go169 symbols
rpb/riak_dt/riak_dt.pb.go151 symbols
rpb/riak_ts/riak_ts.pb.go143 symbols
misc_commands.go142 symbols
rpb/riak/riak.pb.go123 symbols
ts_commands.go94 symbols
yz_commands.go83 symbols
rpb/riak_yokozuna/riak_yokozuna.pb.go59 symbols
kv_commands_test.go38 symbols
command.go38 symbols

For agents

$ claude mcp add riak-go-client \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page