Skip to content

Strawberry-Foundations/strawberry-chat

Repository files navigation

The universal chatting platform for (not just) your terminal!



Latest Stable Release Latest Development Release Latest Canary Release

Codename Code Size Commit activity

What is Strawberry Chat?

Strawberry Chat is a simple chat platform based on Rust Async Tcp Streams. It allows you to chat with other people in a simple and minimal way - without annoying tracking and spying.
Also don't mind looking at our documentation! https://developers.strawberryfoundations.xyz/

Why?

I wanted to program a "small" chat app because I had always been interested in microcomputer and bare-bones technologies such as pure Tcp sockets. At the time I started, I only knew Python. Due to the size and features of Strawberry Chat, Strawberry Chat was rewritten in a faster and safer language, Rust. Strawberry Chat is not intended to be a replacement for conventional chat platforms - it is more of an addition to have fun.

How does Strawberry Chat work?

I can't explain everything in detail now, it might end up in our Developer documentation, but Strawberry Chat works by simply communicating via Tcp sockets - similar to IRC, except we have our own transport format.
In the beginning, communication only took place via pure strings (if you can read German, this might be helpful). This was quite simple, but it limited the users very much. And so the Strawberry Communication Standard was born. With v2 of the standard, we implemented JSON to provide more options for how the client can represent a message. We are currently developing v3, which goes in both directions - server & client send JSON.

Security

Security is an important part when it comes to internet programs. In the following table you can see our security features and the corresponding versions:

Version PW Hashing TLS Auto-
mod
IP Block Ratelimit Login Verification Msg Verification Watchdog
v1.8
v1.9
v1.10
v1.11

Legend

Supported Not supported Partially supported

Release cycle

We have developed the Strawberry Chat release schedule so that a version is released approximately every month. This can be a major release (such as v1.9, v.11), but it can also be a minor release (such as v1.8.2). In rare cases, a new version is only released every 2 months.

The last stable release before v1.11.0 was released on December 1, 2023, and was version 1.9.0. About 5 months have passed since this release. In very rare cases this can happen. This was because we rewrote Strawberry Chat in a completely different language, namely Rust, which takes a lot of time. We do not plan to change the language in the future - however, if we change anything in our code base, which could take a long time, it is quite possible that the release of a new version could take several months.

Side Notes

Config

When you start Strawberry Chat for the first time, Strawberry Chat automatically creates a configuration for you. However, if you want to create a config file beforehand, you can copy the example.config.yml from this repository and modify it: Copy ./example.config.yml to ./target/{RELEASE_TYPE}/config.yml (Or to the same directory as the executable) and change values as needed