DarkLord is a Java API for Project Voldemort. It uses official Voldemort Java API and provides additional abstraction.
It is named after the fictional Harry Potter villain Lord Voldemort. The Dark Lord is used as a nick name for the Lord Voldemort. In the series, almost no witch or wizard dares to speak his name, instead referring to him by epithets such as "You-Know-Who", "He-Who-Must-Not-Be-Named" or "the Dark Lord".
Project Voldemort is a distributed data store that is designed as a key-value store used by LinkedIn for high-scalability storage.
Project Voldemort already has a Java API which is used by Voldemort internally. But DarkLord provides a tiny API as an abstraction on top of official Voldemort client API.
The current design of original Voldemort API is not TDD friendly. It's sometimes impossible to write unit tests using the API. The main aim to build a new abstraction on top of Voldemort API is to be able to have less-features but cleaner codebase.
darklord-client API provides a java client using the original Voldemort Java API.
darklord-server API provides a server implementation to startup Voldemort instances on local machines for testing purposes. This provides capability to develop or test without any need to Voldemort server installation.
Java version:
- Java 7
Libraries not available in central maven repository. You can access these libraries from project's lib/
folder and copy to your local maven repository:
- Voldemort-1.3.0
- Je-4.1.17
For maven users, you can add DarkLord-Client and DarkLord-Server from OSS Central Maven Repository as the following.
<dependency>
<groupId>com.agilistanbul</groupId>
<artifactId>darklord-client</artifactId>
<version>0.1.1</version>
</dependency>
<dependency>
<groupId>com.agilistanbul</groupId>
<artifactId>darklord-server</artifactId>
<version>0.1.1</version>
</dependency>
Please note that Voldemort-1.3.0 is not available in central maven repository. You should download and add it to your local repository by yourself.
Voldemort server and clients can be configured by changing values of the predefined settings. The list of all possible settings are added to the codebase as sample files. You can check the settings of Voldemort server from server.properties, the settings of Voldemort client from client.properties and the settings of Voldemort admin client from admin.properties files.
Copyright (C) Lemi Orhan Ergin
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.