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.org/
I wanted to program a “small” chat application because I had always been interested in networking and simple technologies like pure Tcp sockets. At the time I started, I only knew Python. Due to the scope and features of Strawberry Chat, Strawberry Chat was rewritten in a faster and safer language, Rust. Strawberry Chat is not meant to be a replacement for traditional chat platforms - it's more of an addition to have fun.
Strawberry Chat uses TCP streams and a self-implemented JSON communication format. For data compression msgpack is used. There is a server and clients. The processing of all data, commands, etc. takes place on the server - the client only serves as an input between server and client.
Our official Strawberry Chat Client is best optimized for use with the official Strawberry Chat Server. It is very easy to use and offers a configuration to save servers as well as credentials
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 |
Strawberry Chat can be downloaded as a stable release here, or as a development version directly from GitHub. However, this must be compiled manually.
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
Strawberry Chat uses MySQL / MariaDB as database backend. The configuration for this is in the config.yml under the database
section
The database needs a users
table for Strawberry Chat to work
We have developed the release schedule of Strawberry Chat so that a new version should be released every month. This could be a major release (e.g. v1.12.0) or an intermediate release (e.g. v1.12.1). Usually a major version is always followed by a minor version or an intermediate version. In certain cases, 2 major or minor major versions can also be released in succession.
Note
Due to a lack of ideas for new functions, this schedule cannot be adhered to.