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/
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.
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 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 |
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.
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