Crimean RAC Bundle
Go to file
2025-02-08 20:42:38 +03:00
.idea Initial commit 2024-12-22 22:39:47 +03:00
gradle/wrapper Initial commit 2024-12-22 22:39:47 +03:00
src/main/java/net/pixtaded/crab Port the client to RACv2 beta (the server is still not functional) 2025-02-08 20:34:47 +03:00
.gitignore Add cli arguments, nick support and add data.db to .gitignore. 2025-01-10 20:38:30 +05:00
build.gradle Add shadowJar instead of application, bump the project's version to 1.0.5 2025-01-12 18:07:15 +03:00
gradle.properties Add shadowJar instead of application, bump the project's version to 1.0.5 2025-01-12 18:07:15 +03:00
gradlew Initial commit 2024-12-22 22:39:47 +03:00
gradlew.bat Initial commit 2024-12-22 22:39:47 +03:00
LICENSE Add LICENSE 2024-12-22 22:50:12 +03:00
README.md Add RACv1.99 protocol specification 2025-02-08 20:42:38 +03:00
settings.gradle Initial commit 2024-12-22 22:39:47 +03:00

CRAB (Crimean RAC Bundle)

CRAB is a Java client and server implementation of the RAC (Real Address Chat) protocol, designed to facilitate communication in a lightweight and efficient manner.

Table of Contents

Overview

CRAB aims to provide a simple and effective implementation of the RAC protocol, which is humorously referred to as Mr. Sugomas “IRC killer.” The protocol allows clients to send messages to a server, which processes them according to predefined message types.

Installation

To get started with CRAB, follow these steps:

  1. Clone the repository:

    git clone https://gitea.bedohswe.eu.org/pixtaded/crab.git
    cd crab
    
  2. Build the project: Ensure you have Java Development Kit (JDK) of version 17 or higher installed. You can build the project using Maven:

    ./gradlew clean build
    
  3. Run the bundle: You will have the built .tar and .zip packages in ./build/distributions directory.

Usage

Once the server is running, clients can connect to it and send messages according to the RAC protocol. The client will need to specify the server's address and port to establish a connection.

RAC Protocol

  1. Message Retrieval

    a. The client initiates a message retrieval session by sending the byte 0x00 to the server.

    b. In response, the server transmits the size of the available messages as an ASCII-encoded string.

    c. After receiving the size, the client must send the following byte or close the connection:

    i. Sending 0x01 instructs the server to transmit the messages.

  2. Message Transmission

    a. To send a message, the client issues a request in the following format:

    0x01 followed immediately by the message content.

Additional Notes:

Although the protocol may appear similar to RACv1, it is important to note that RACv1.99 represents the beta development phase of RACv2. Consequently, significant changes and enhancements are anticipated. The current specification is implemented in lRACd version 1.99.1 and clRAC version 1.99.1.