/sputnikn-chat-server

A SputnikN chat server written with Kotlin and Akka

Primary LanguageKotlinGNU Affero General Public License v3.0AGPL-3.0

SputnikN Chat Server

A SputnikN chat server written with Kotlin and Akka

Repositories overview

The chat ecosystem consists of several dependent repositories:

  • Database code gen - Class generator according to the DB schema, the DB schema is attached;
  • Transport code gen - Transport message generator between Client and Server;
  • Chat server - High loaded and scalable chat server written with Akka/Ktor/Rest/WebSocket/Protobuf/Jooq;
  • Client chat SDK - SDK client chat library for embedding in third-party applications written in Flutter;
  • Sample application - An example of a chat application using the SDK client library written with Flutter;

Build and use

Project builds with all-in-one included dependency libraries as fat jar and after build can be copied and used as standalone console application.
To build run:
<project_dir>/gradlew clean shadowJar
Before use define system variables:

JDBC_DRIVER=org.postgresql.Driver
JDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/sputniknchat?user=postgres&password=ok
JDBC_POOL_SIZE=10

To use run:
java -jar <project_dir>/build/libs/sputnikn_chat_server-1.0-SNAPSHOT-all.jar

The rules

Avoid to send same responseId to all recipients, this may cause a problem at client side!