Skip to content
/ RespDB Public

📁 Client-server key-value storage based on para-RESP protocol

Notifications You must be signed in to change notification settings

gvsem/RespDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

RespDB

🧑‍🎓 This project was conducted during the 'Programming technologies' (2021) university course

The task was to implement given interfaces and methods for Client-Server key-value storage using sockets and Resp-protocol.

Description

Start JavaSocketServerConnector.java to launch the server.

Use the following code to access the server:

try (SocketKvsConnection socketKvsConnection = new SocketKvsConnection(new ConnectionConfig("localhost", 8080))) {
    SimpleKvsClient client = new SimpleKvsClient("myrestdb", () -> socketKvsConnection);
    client.createDatabase();
    client.createTable("users");
    String ss = client.get("users", "john");
} catch (Exception e) {
    e.printStackTrace();
}

Project Tree

+---basics
|   |   DatabaseServer.java
|   |
|   +---config
|   |       ConfigLoader.java
|   |       DatabaseConfig.java
|   |       DatabaseServerConfig.java
|   |       ServerConfig.java
|   |
|   +---connector
|   |       JavaSocketServerConnector.java
|   |
|   +---console
|   |   |   DatabaseApiSerializable.java
|   |   |   DatabaseCommand.java
|   |   |   DatabaseCommandArgPositions.java
|   |   |   DatabaseCommandResult.java
|   |   |   DatabaseCommands.java
|   |   |   ExecutionEnvironment.java
|   |   |
|   |   \---impl
|   |           CreateDatabaseCommand.java
|   |           CreateTableCommand.java
|   |           DeleteKeyCommand.java
|   |           ExecutionEnvironmentImpl.java
|   |           FailedDatabaseCommandResult.java
|   |           GetKeyCommand.java
|   |           SetKeyCommand.java
|   |           SuccessDatabaseCommandResult.java
|   |
|   +---exceptions
|   |       DatabaseException.java
|   |
|   +---index
|   |   |   KvsIndex.java
|   |   |   SegmentOffsetInfo.java
|   |   |
|   |   \---impl
|   |           MapBasedKvsIndex.java
|   |           SegmentIndex.java
|   |           SegmentOffsetInfoImpl.java
|   |           TableIndex.java
|   |
|   +---initialization
|   |   |   DatabaseInitializationContext.java
|   |   |   InitializationContext.java
|   |   |   Initializer.java
|   |   |   SegmentInitializationContext.java
|   |   |   TableInitializationContext.java
|   |   |
|   |   \---impl
|   |           DatabaseInitializationContextImpl.java
|   |           DatabaseInitializer.java
|   |           DatabaseServerInitializer.java
|   |           InitializationContextImpl.java
|   |           SegmentInitializationContextImpl.java
|   |           SegmentInitializer.java
|   |           TableInitializationContextImpl.java
|   |           TableInitializer.java
|   |
|   +---logic
|   |   |   Database.java
|   |   |   DatabaseCache.java
|   |   |   DatabaseFactory.java
|   |   |   DatabaseRecord.java
|   |   |   Segment.java
|   |   |   Table.java
|   |   |   WritableDatabaseRecord.java
|   |   |
|   |   +---impl
|   |   |       CachingTable.java
|   |   |       DatabaseCacheImpl.java
|   |   |       DatabaseImpl.java
|   |   |       RemoveDatabaseRecord.java
|   |   |       SegmentImpl.java
|   |   |       SetDatabaseRecord.java
|   |   |       TableImpl.java
|   |   |
|   |   \---io
|   |           DatabaseInputStream.java
|   |           DatabaseOutputStream.java
|   |
|   \---resp
|           CommandReader.java
|
+---client
|   +---client
|   |       KvsClient.java
|   |       SimpleKvsClient.java
|   |
|   +---command
|   |       CreateDatabaseKvsCommand.java
|   |       CreateTableKvsCommand.java
|   |       DeleteKvsCommand.java
|   |       GetKvsCommand.java
|   |       KvsCommand.java
|   |       SetKvsCommand.java
|   |
|   +---connection
|   |       ConnectionConfig.java
|   |       DirectReferenceKvsConnection.java
|   |       KvsConnection.java
|   |       SocketKvsConnection.java
|   |
|   \---exception
|           ConnectionException.java
|           DatabaseExecutionException.java
|
\---protocol
    |   RespReader.java
    |   RespWriter.java
    |
    \---model
            RespArray.java
            RespBulkString.java
            RespCommandId.java
            RespError.java
            RespObject.java

About

📁 Client-server key-value storage based on para-RESP protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages