A Crystal client library for Couchbase.
Status: early scaffold. The current
CryBase::CouchBase::Clientis a dummy that enumerates and TCP-probes every Couchbase service interface (KV, Query, Search, Analytics, Index, Eventing, Views, Management) over both plaintext and TLS ports. No protocol handshake is implemented yet.
-
Add the dependency to your
shard.yml:dependencies: crybase: github: num8er/crybase
-
Run
shards install.
require "crybase"
client = CryBase::CouchBase::Client.connect(
"couchbases://node1.example.com,node2.example.com",
username: "Administrator",
password: "password",
)
client.endpoints_for(CryBase::CouchBase::Service::KV).each do |ep|
puts ep # e.g. "Data (KV) couchbases://node1.example.com:11207"
end
client.close| Scheme | TLS | Notes |
|---|---|---|
couchbase:// |
no | Plaintext (default if scheme omitted). |
couchbases:// |
yes | TLS on every service port. |
http(s):// |
yes/no | Treated as a Management URL. |
Multiple seed nodes are comma-separated:
couchbase://node1,node2,node3. An explicit :port is forwarded to the
Management endpoint only — every other service uses its standard port.
| Service | Plaintext | TLS |
|---|---|---|
| Data (KV) | 11210 | 11207 |
| Query (N1QL) | 8093 | 18093 |
| Search (FTS) | 8094 | 18094 |
| Analytics | 8095 | 18095 |
| Index | 9102 | 19102 |
| Eventing | 8096 | 18096 |
| Views | 8092 | 18092 |
| Management | 8091 | 18091 |
crystal spec # run the test suite
crystal tool format # format sources- Fork it (https://github.com/num8er/crybase/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
- Anar K. Jafarov - creator and maintainer