Introduction to the Strawberry Communication Standard
This should give you a general idea what the Strawberry Communication Standard is about
What is this?
The Strawberry Chat communication system is currently being rewritten. In order to distinguish between the old system and the new system, we are now introducing the Strawberry Communication System (stbm). This communication system forms a standard for Strawberry Chat, and possibly for other Strawberry Foundations projects in the future.
Currently we have 2 major versions of stbm.
Version 1 (stbmv1)
is a legacy version and no longer receives any new major updates. We only offer support for a certain period of time.
Version 2 (stbmv2)
is a new, revised version of our communication system.
This uses JSON to transfer messages via the user.
With our new communication standard, users can now program their own message builder and decide for themselves how a message should be displayed, regardless of how the server had actually formatted the messages.
There is also Version 2.1 (stbmv2.1)
which adds support for message proxying, currently it is not available.
What? Why? How?
You may wonder and ask yourself what even is this? Well, this is a way how 2 socket instances communicate with each-other, this was primarily designed for Strawberry Chat to send data between the server and the client such as username, badges and messages, but we decided to make a small guide on how to implement it into your client.
stbmv2
). You can learn more about it hereThe Idea
The original concept for it was posted to our projects board on GitHub on November 10th 2023 Please note that this is currently only available in German.
Example code
Supported versions in Strawberry Chat
This only applies to Strawberry Chat, not other programs
See this chart below
v1.8.0 - v1.8.2 | v1.8.3 | v1.9.0 | |
---|---|---|---|
Standard <=2.4.0 | ✅ | ✅ | ❌ |
Standard v2.5.0 | ❌ | ❌ | ✅ |
Standard >=v2.5.1 | ✅ (CM) | ✅ (CM) | ✅ (CM) |
Lite <=v1.0.1 | ✅ | ✅ | ❌ |
Lite >=v1.1.0 | ❌ | ❌ | ✅ |
Nano <=v1.0.1 | ✅ | ✅ | ❌ |
Nano >=v1.1.0 | ❌ | ❌ | ✅ |
Berryjuice-pico | ✅ | ✅ | ❌ |
Compatibility Mode (CM)
As of Client v2.5.1, we have added a feature that allows users to connect to old servers.
This is called Compatibility Mode. To activate it you either have to add compatibility_mode: true
to the respective legacy server entry or start the client with the --compatibility-mode
flag!