Uses old Rust 2015
|0.1.1||Jun 7, 2017|
|0.1.0||Jun 7, 2017|
#8 in #cdb
cdbd ("constant database daemon") is a small constant database server: given a key-value file in a format it understands (like CDB), it will serve that file via a protocol it speaks (like memcached).
In the past I have used a company-internal tool like cdbd (called "SSTable Service") to provide precomputed data to production services. The idea is that it's super easy to start a cdbd instance and get the data where you need. In a service-oriented architecture, cdbd makes your static data accessible.
echo '+3,5:one->Hello\n' | cdbmake f.cdb f.cdb.tmp cdbd --cdb f.cdb --memcached 11211 & memccat --servers=localhost:11211 one
Install with Cargo, the Rust package manager, like so:
cargo install cdbd
Usage: target/debug/cdbd [options] Options: --memcached [HOST:]PORT What port (and optional address) to bind a memcached service on (default address "0.0.0.0") --cdb CDB A CDB file to serve --mtbl MTBL An MTBL file to serve -v, --verbose Print more logging information (may be used more than once for more detail) -h, --help Print this help text
- memcached (with flag
--memcached [HOST:]PORT; supports memcached read operations only)
- Loadtests and benchmarks
- Use Tokio
- Support other databases
- Berkeley DB?
- Support other protocols
- Redis (get and mget)
- Pull protocols out into their own crates? It would allow others to write memcached etc. servers a little more easily, maybe.
Copyright 2017 Leon Barrett
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.