28 KiB
[unreleased]
Bug fixes:
- Fix missing
relates_to
field onStickerEventContent
- Fix deserialization of
AnyGlobalAccountDataEvent
for variants with a type fragment. - Fix serialization of
room::message::Relation
androom::encrypted::Relation
which could cause duplicaterel_type
keys. Restricted
no longer fails to deserialize when theallow
field is missing- Markdown text constructors now also detect markdown syntax like backslash escapes and entity references to decide if the text should be sent as HTML.
Improvements:
- Add support for encrypted stickers as sent by several bridges under the flag
compat-encrypted-stickers
- Add unstable support for MSC3489
m.beacon
&m.beacon_info
events (unstable typesorg.matrix.msc3489.beacon
&org.matrix.msc3489.beacon_info
) - Stabilize support for muting in VoIP calls, according to Matrix 1.11
- All the root
Any*EventContent
types now have aEventContentFromType
implementations automatically derived by theevent_enum!
macro. CallMemberEventContent
now supports two different formats: Session memberships and Legacy memberships. The new format (Session) is required to reliably display the call member count (reliable call member events).CallMemberEventContent
is now an enum to model the two different formats.CallMemberStateKey
(instead ofOwnedUserId
) is now used as the state key type forCallMemberEventContent
. This guarantees correct formatting of the event key.- Add helpers for captions on audio, file, image and video messages.
- Add helpers for filenames on audio, file, image and video messages.
- Stabilize support for the
m.marked_unread
room account data according to Matrix 1.12. The unstablecom.famedly.marked_unread
room account data is still available behind theunstable-msc2867
cargo feature to be able to migrate data from the unstable to the stable prefix.
Breaking changes:
StickerEventContent::url
was replaced byStickerEventContent::source
which is aStickerMediaSource
0.28.1
Improvements:
- Implement
make_for_thread
andmake_replacement
forRoomMessageEventContentWithoutRelation
RoomMessageEventContent::set_mentions
is deprecated and replaced byadd_mentions
that should be called beforemake_replacement
.
0.28.0
Bug fixes:
- The
MembershipState::Invite
toMembershipState::Knock
membership change now returnsMembershipChange::Error
, due to a spec clarification
Breaking changes:
- The properties of
SecretStorageV1AesHmacSha2Properties
are nowOption
al. - Remove
event_id
methods from relation types - The required power level is different whether the user wants to redact their
own event or an event from another user:
-
RoomPowerLevels::user_can_redact
is split intouser_can_redact_own_event
anduser_can_redact_event_of_other
,PowerLevelAction::Redact
is split intoRedactOwn
andRedactOther
.
- Use
OwnedRoomId
instead ofString
for thestate_key
field ofHierarchySpaceChildEvent
- The
sdp_mid
andsdp_m_line_index
fields ofCandidate
are now optional, for better compatibility with the WebRTC specification.
Improvements:
- Don't fail event content parsing on invalid relation
- We previously already accepted custom or slightly malformed relations
- Now, even invalid / missing
rel_type
andevent_id
are accepted
- Implement
From<RoomPowerLevels>
forruma_common::push::PushConditionPowerLevelsCtx
- Add methods on
PowerLevels
to check if some actions are permitted based on the target user's power level. - Add unstable support for manually marking rooms as unread through MSC2867
and the room account data
m.marked_unread
event (unstable typecom.famedly.marked_unread
) - Implement
From<JoinRule>
forSpaceRoomJoinRule
- Add
filename
andformatted
fields to media event contents to support media captions as per MSC2530 / Matrix 1.10 - Add support for multi-stream VoIP, according to MSC3077 / Matrix 1.10
- Add unstable support for muting in VoIP calls, according to MSC3291
0.27.11
- Add unstable support for
m.call.notify
events (unstable typeorg.matrix.msc4075.call.notify
)
0.27.10
Deprecations:
- Deprecate
event_id
methods onRelation
types- They will be removed in the next breaking-change release
- Please open an issue if you are currently using them
0.27.9
Bug fixes:
- Fix the name of the fallback text field for extensible events in
RoomMessageEventContentWithoutRelation::make_reply_to_raw()
0.27.8
Improvements:
- Export the
UnstableAmplitude
type from theroom::message
module under theunstable-msc3245-v1-compat
feature; it was previously unnameable
0.27.7
Improvements:
- Remove invalid
non_exhaustive
attribute oncall::member::MembershipInit
0.27.6
Improvements:
- Add unstable support for
m.call.member
events (unstable typeorg.matrix.msc3401.call.member
)
0.27.5
Improvements:
- Add the Ruma logo to the documentation as a favicon / sidebar logo
0.27.4
Improvements:
- Add
Thread::without_fallback
as a constructor that initializes the minimal set of required fields
0.27.3
Improvements:
- Improve compatibility of unstable voice messages
0.27.2
Improvements:
- Added constructors for
UnstableAudioDetailsContentBlock
andUnstableVoiceContentBlock
0.27.1
Improvements:
- Calling
make_reply_to
ormake_reply_to_raw
withAddMentions::Yes
no longer adds people mentioned in the original message to mentions (only the sender of the original message) - Add convenience constructors like
text_plain
toRoomMessageEventContentWithoutRelation
- These are the same that are already available on
RoomMessageEventContent
- These are the same that are already available on
- Add methods on
RoomMessageEventWithoutRelation
that were previously only available onRoomMessageEventContent
:make_reply_to
make_reply_to_raw
add_mentions
0.27.0
The crate was split out of ruma-common
again after ruma-common 0.11.3
.
Bug fixes:
- Parse
m.tag
order
as a f64 value or a stringified f64 value, if thecompat-tag-info
feature is enabled.
Breaking changes:
- Rename the
key
field in theSecretStorageDefaultKeyEventContent
tokey_id
. - Make
in_reply_to
field ofThread
optional- It was wrong to be mandatory, spec was unclear (clarified here)
- Remove
AnswerSessionDescription
andOfferSessionDescription
types, useSessionDescription
instead.- Remove
SessionDescriptionType
, use aString
instead. A clarification in MSC2746 / Matrix 1.7 explains that thetype
field should not be validated but passed as-is to the WebRTC API. It also avoids an unnecessary conversion between the WebRTC API and the Ruma type.
- Remove
- The
reason
field inCallHangupEventContent
is now required and defaults toReason::UserHangup
(MSC2746 / Matrix 1.7) - The
Replacement
relation forRoomMessageEventContent
now takes aRoomMessageEventContentWithoutRelation
instead of aMessageType
- Make the
redacts
field ofOriginal(Sync)RoomRedactionEvent
optional to handle the format where theredacts
key is moved inside thecontent
, as introduced in room version 11, according to MSC2174 / MSC3820 / Matrix 1.8RoomRedactionEventContent::new()
was renamed tonew_v1()
, andwith_reason()
is no longer a constructor but a builder-type method
- Make the
creator
field ofRoomCreateEventContent
optional and deprecate it, as it was removed in room version 11, according to MSC2175 / MSC3820 / Matrix 1.8RoomCreateEventContent::new()
was renamed tonew_v1()
RedactedRoomCreateEventContent
is now a typedef overRoomCreateEventContent
RoomMessageEventContent::make_reply_to()
andmake_for_thread()
have an extra parameter to support the recommended behavior for intentional mentions in replies according to Matrix 1.7- In Markdown, soft line breaks are transformed into hard line breaks when compiled into HTML.
- Move the HTML functions in
events::room::message::sanitize
to the ruma-html crate- The
unstable-sanitize
cargo feature was renamed tohtml
- The
- Make
via
required inSpace(Child|Parent)EventContent
according to a spec clarification - Make
name
required inRoomNameEventContent
, the wording of the spec was confusing - Rename
SecretEncryptionAlgorithm
toSecretStorageEncryptionAlgorithm
and itsSecretStorageV1AesHmacSha2
variant toV1AesHmacSha2
. This variant is also a tuple variant instead of a struct variant
Improvements:
- Add
InitialStateEvent::{new, to_raw, to_raw_any}
- Add a convenience method to construct
RoomEncryptionEventContent
with the recommended defaults. - Add
FullStateEventContent::redact
- Add new methods for
RoomPowerLevels
:user_can_ban
user_can_invite
user_can_kick
user_can_redact
user_can_send_message
user_can_send_state
user_can_trigger_room_notification
- Add
MessageType::sanitize
behind thehtml
feature - Stabilize support for annotations and reactions (MSC2677 / Matrix 1.7)
- Add support for intentional mentions push rules (MSC3952 / Matrix 1.7)
- Stabilize support for VoIP signalling improvements (MSC2746 / Matrix 1.7)
- Make the generated and stripped plain text reply fallback behavior more compatible with most of the Matrix ecosystem.
- Add support for intentional mentions according to MSC3952 / Matrix 1.7
- Add support for room version 11 according to MSC3820 / Matrix 1.8
- Add preserved fields to match the new redaction algorithm, according to
MSC2176 / MSC3821, for the following types:
RedactedRoomRedactionEventContent
,RedactedRoomPowerLevelsEventContent
,RedactedRoomMemberEventContent
- Add preserved fields to match the new redaction algorithm, according to
MSC2176 / MSC3821, for the following types:
- Add
RoomMessageEventContent::make_reply_to_raw
to build replies to any event - Add support for custom
SecretStorageEncryptionAlgorithm
0.26.1
Deprecation of the crate. It is now part of ruma-common 0.9.0.
0.26.0
Breaking changes:
- Bump versions of
ruma-common
,ruma-idenfiers
0.25.0
Breaking changes:
- Remove
RedactedStrippedStateEvent
- It was not used anywhere since stripped state events are never actually redacted
- Use
Box<RawJsonValue>
instead ofJsonValue
for PDUcontent
field - Require
room::message::MessageType
to always contain a body- The
new
constructor now also has a body parameter
- The
- Rename
*ToDeviceEventContent
structs toToDevice*Content
- Remove unneeded redacted event content enums
- Update
reply
andhtml_reply
types toimpl Display
onRoomMessageEventContent
's reply constructors - Remove the
custom
module, which has been redundant for a while- If you are still using it and are unclear on the upgrade path, please get in touch
Improvements:
- Add
is_allowed
toRoomServerAclEventContent
- Add
room::message::MessageType::body
accessor method - Implement
Redact
for event structs (in addition toAny
event enums) - Add
room::message::RoomMessageEventContent::{body, msgtype}
accessor methods - Move
room::message::MessageType::VerificationRequest
out ofunstable-pre-spec
- Move MSC implementations from
unstable-pre-spec
to per-msc features:unstable-msc2448 unstable-msc2675 unstable-msc2676 unstable-msc2677
0.24.6
Improvements:
- Add (unstable) support for MSC3083
0.24.5
Improvements:
- Add
From
implementations for event and event content enums - It's now an error for a
room::message::Relation
to beReplaces
without there beingnew_content
- Previously, this used to set the relation to
None
- Previously, this used to set the relation to
- Unsupported relations are now deserialized to
relates_to: Some(_)
instead ofNone
- It's not possible to inspect the inner value though
0.24.4
Improvements:
- Add a workaround for synapse putting
prev_content
in unsigned (only active if thecompat
feature is enabled)
0.24.3
Improvements:
- Add unstable support for
m.secret.request
andm.secret.send
events
0.24.2
Improvements:
- Add missing constructor and
From
implementation forEncryptedToDeviceEventContent
0.24.1
Breaking changes:
room::name::NameEventContent
now uses a customRoomNameBox
type for itsname
field and makes it public, in response the constructor andname
accessor had their types updated too- Replace
InvalidEvent
by a more specificFromStringError
for room name validation - Remove unused
FromStrError
- Remove deprecated method
room::name::NameEventContent::name
- Make
encrypted::EncryptedToDeviceEventContent
its own type instead of a type alias forEncryptedEventContent
- It doesn't have the
relates_to
fieldEncryptedEventContent
has
- It doesn't have the
- Upgrade dependencies
Improvements:
- Add the
StaticEventContent
trait for abstracting over event content struct types (with a type known at compile-time)
0.24.0
Yanked, was released too early missing another important breaking change.
0.23.3
Improvements:
- Add unstable blurhash field to member event content struct
- Add constructors for the unstable spaces parent and child event content types
Bug fixes:
- Remove
new_content
from the plain-text part ofm.encrypted
events- It is supposed to go into the encrypted payload, but we expected it in the plain-text part before.
- This is technically a breaking change but since that can only be observed behind an unstable feature and this change doesn't break matrix-sdk, it's made in a point release.
0.23.2
Bug fixes:
- Fix reaction event (de)serialization (was broken in 0.23.0)
0.23.1
Improvements:
- Allow the macros exported by ruma-events to be used by crates that depend on matrix-sdk, but not (directly) on ruma or ruma-events
0.23.0
Breaking changes:
- Rename
key::verification::AcceptMethod::{MSasV1 => SasV1}
- As above, drop
M
prefix fromkey::verification::VerificationMethod
variants- Additionally, fix the name of the QR code one (
QrScanShowV1
toQrCodeScanV1
)
- Additionally, fix the name of the QR code one (
- Remove
room::power_level::NotificationPowerLevels
, now found inruma_common::power_levels
(orruma::power_levels
) - Remove
Custom
variant from event enums. If you were using this, please get in touch. - Remove
Custom
variant fromkey::verification::accept::AcceptMethod
andkey::verification::start::StartMethod
. - Rename
relation
field in some events torelates_to
- All events that support relations now have their own
Relation
types (theroom::relationships
module has been removed)- The
room::encryption
relation type can represent any kind of relation and hasFrom
implementations so any other relation can be converted to it
- The
Improvements:
- Add types for decrypted
m.room.encryption
event payloads (DecryptedOlmV1Event
,DecryptedMegolmV1Event
)- Currently, these don't have corresponding enums (and they might never get ones), instead to
represent a decrypted event payload with an unknown event type use
AnyMessageEventContent
for the generic parameter
- Currently, these don't have corresponding enums (and they might never get ones), instead to
represent a decrypted event payload with an unknown event type use
0.22.2
Improvements:
- Add unstable support for
m.space.child
andm.space.parent
events
0.22.1
Bug fixes:
- Fix serialized format of
DummyEventContent
0.22.0
Breaking changes:
- Change the structure of
StartEventContent
so that we can access transaction ids without the need to understand the concrete method. - Change
get_message_events
limit field type fromOption<UInt>
toUInt
- Add
alt_aliases
toCanonicalAliasEventContent
- Replace
format
andformatted_body
fields inTextMessageEventContent
,NoticeMessageEventContent
andEmoteMessageEventContent
withformatted: FormattedBody
- Rename
override_rules
inpush_rules::Ruleset
tooverride_
- Change
push_rules::PushCondition
variants from newtype variants with separate inner types to struct variants- This change removes the types
EventMatchCondition
,RoomMemberCountCondition
andSenderNotificationPermissionCondition
- This change removes the types
- Add PDU types:
pdu::{Pdu, PduStub}
presence::PresenceState
has been moved. Import it fromruma
orruma-common
.EventJson
has been moved and renamed. Import it fromruma
orruma-common
.- The
in_reply_to
field ofroom::message::RelatesTo
is now optional - Use
ruma_identifiers::{ServerName, ServerKeyId}
insignatures
fields ofpdu::RoomV1Pdu, RoomV1PduStub, RoomV3Pdu, RoomV3PduStub}
androom::member::SignedContent
. - Remove the
EventType::Custom
variant. You can still check for custom event types by going through.as_str()
. This ensures that new event types doesn't break existing code. - Remove the implementations of
From<EventType>
andFrom<key::verification::cancel::CancelCode>
forString
. Use theDisplay
orToString
implementations for those types instead. - Remove
PduStub
,RoomV1PduStub
andRoomV3PduStub
types - Use
ruma_identifiers::MxcUri
instead ofString
foravatar_url
,thumbnail_url
orurl
fields in the following types:presence::PresenceEventContent, room::{ avatar::{AvatarEventContent, ImageInfo}, member::MemberEventContent, message::{ AudioMessageEventContent, FileMessageEventContent, ImageMessageEventContent, VideoMessageEventContent } EncryptedFile, ImageInfo, }, sticker::StickerEventContent
- Add
tag::TagName
type and use it fortag::Tags
- Move
FullyRead
fromEphemeralRoom
enum toRoomAccountData
enum - Split
Basic
enum intoGlobalAccountData
andRoomAccountData
enums- Remove
DummyEvent
,DummyEventContent
,RoomKeyEvent
,RoomKeyEventContent
- Remove
- Remove
BasicEventContent
trait and derive - Make most of the types in this crate non-exhaustive
Improvements:
- Add
room::MessageFormat
androom::FormattedBody
- Skip serialization of optional values on
room::encryption::EncryptionEventContent
- Rename
TextMessageEventContent::new_plain
toplain
(the old name is still available, but deprecated) - Add more constructors for types in
room::message
:TextMessageEventContent::html
NoticeMessageEventContent::plain
NoticeMessageEventContent::html
MessageEventContent::text_plain
MessageEventContent::text_html
MessageEventContent::notice_plain
MessageEventContent::notice_html
- Add policy rule entities:
policy::rule::room
policy::rule::server
policy::rule::user
- Add policy rule recommendation:
Recommendation::Ban
0.21.3
Bug fixes:
- Fix
m.room.message
event serialization
Improvements:
- Skip serialization of
federate
field inroom::create::CreateEventContent
if it istrue
(the default value) room::power_levels::PowerLevelsEventContent
now implementsDefault
0.21.2
Improvements:
- Update dependencies
0.21.1
Improvements:
- Add
EventJson::into_json
0.21.0
Breaking changes:
- Replace
EventResult
with a new construct,EventJson
- Instead of only capturing the json value if deserialization failed, we now
now always capture it. To improve deserialization performance at the same
time, we no longer use
serde_json::Value
internally and instead deserialize events asBox<serde_json::value::RawValue>
.EventJson
is simply a wrapper around that owned value type that additionally holds a generic argument: the type as which clients will usually want to deserialize the raw value.
- Instead of only capturing the json value if deserialization failed, we now
now always capture it. To improve deserialization performance at the same
time, we no longer use
- Add
struct UnsignedData
and update allunsigned
fields types fromBTreeMap<String, Value>
to this new type.- To access any additional fields of the
unsigned
property of an event, deserialize theEventJson
to another type that captures the field(s) you are interested in.
- To access any additional fields of the
- Add fields
format
andformatted_body
toroom::message::NoticeMessageEventContent
- Remove
room::message::MessageType
- Remove useless
algorithm
fields from encrypted event content structs - Remove
PartialEq
implementations for most types- Since we're now using
serde_json::value::RawValue
, deriving no longer works
- Since we're now using
- Update the representation of
push_rules::Tweak
- Raise minimum supported Rust version to 1.40.0
0.20.0
Improvements:
- Update ruma-identifiers to 0.16.0
0.19.0
Breaking changes:
- Update ruma-identifiers to 0.15.1
- Change timestamps, including
origin_server_rs
fromUInt
toSystemTime
- Change all usages of
HashMap
toBTreeMap
- To support this,
EventType
now implementsPartialOrd
andOrd
- To support this,
0.18.0
Breaking changes:
- Update unsigned field's type from
Option<Value>
toMap<String, Value>
Improvements:
- Add a convenience constructor to create a plain-text
TextMessageEventContent
- Add
m.dummy
events to the to-device event collection
0.17.0
Breaking changes:
collections::only
no longer exports araw
submodule. It was never meant to be exported in the first place.- Renamed
stripped::{StrippedState => AnyStrippedStateEvent, StrippedStateContent => StrippedStateEvent}
Improvements:
- Added
to_device
module with to-device variants of events (as found in theto_device
section of a sync response) - Added a helper method for computing the membership change from a
MemberEvent
Bug fixes:
- Fixed missing
m.
inm.relates_to
field of room messages - Fixed (de)serialization of encrypted events using
m.olm.v1.curve25519-aes-sha2
0.16.0
Breaking changes:
TryFromRaw::try_from_raw
's signature has been simplified. The previous signature was a relict that was no longer sensible.- All remaining non-optional
room_id
event fields (not event content fields) have been made optional
Improvements:
NameEvent
s are now validated properly and will be rejected if thename
field is longer than 255 bytes.
0.15.1
Bug fixes:
- Deserialization of custom events as part of the types from
ruma_events::collections::{all, only}
was implemented (this was missing after the big fallible deserializion rewrite in 0.15.0)
0.15.0
Improvements:
ruma-events
now exports a new type,EventResult
- For any event or event content type
T
inside a larger type that should support deserialization you can useEventResult<T>
instead - Conceptually, it is the same as
Result<T, InvalidEvent>
InvalidEvent
can represent either a deserialization error (the event's structure did not match) or a validation error (some additional constraints defined in the matrix spec were violated)- It also contains the original value that was attempted to be deserialized into
T
inserde_json::Value
form
- It also contains the original value that was attempted to be deserialized into
- For any event or event content type
Breaking changes:
- The
FromStr
implementations for event types were removed (they were the previous implementation of fallible deserialization, but were never integrated in ruma-client-api because they didn't interoperate well with serde derives)
0.14.0
Breaking changes:
- Updated to ruma-identifiers 0.14.0.
Improvements:
- ruma-events is now checked against the RustSec advisory database.
0.13.0
Breaking changes:
- Events and their content types no longer implement
Deserialize
and instead implementFromStr
andTryFrom<&str>
, which take a&str
of JSON data and return a newInvalidEvent
type on error. - Integers are now represented using the
Int
andUInt
types from thejs_int
crate to ensure they are within the JavaScript-interoperable range mandated by the Matrix specification. - Some event types have new fields or new default values for previous fields to bring them up to date with version r0.5.0 of the client-server specification.
- Some event types no longer have public fields and instead use a constructor function to perform validations not represented by the type system.
- All enums now include a "nonexhaustive" variant to prevent exhaustive pattern matching. This will change to use the
#[nonexhaustive]
attribute when it is stabilized. ParseError
has been renamedFromStrError
.
New features:
- This release brings ruma-events completely up to date with version r0.5.0 of the client-server specification. All previously supported events have been updated as necessary and the following events have newly added support:
- m.dummy
- m.forwarded_room_key
- m.fully_read
- m.ignored_user_list
- m.key.verification.accept
- m.key.verification.cancel
- m.key.verification.key
- m.key.verification.mac
- m.key.verification.request
- m.key.verification.start
- m.push_rules
- m.key.encrypted
- m.key.encryption
- m.key.server_acl
- m.key.tombstone
- m.room_key
- m.room_key_request
- m.sticker
Improvements:
- Improved documentation for the crate and for many types.
- Added many new tests.
- rustfmt and clippy are now used to ensure consistent formatting and improved code quality.
0.12.0
Improvements:
- ruma-events now runs on stable Rust, requiring version 1.34 or higher.
Bug fixes:
CanonicalAliasEvent
andNameEvent
now allow content being absent, null, or empty, as per the spec.
0.11.1
Breaking changes:
RoomId
is now optional in certain places where it may be absent, notably the responses of the/sync
API endpoint.- A
sender
field has been added to theStrippedStateContent
type.
Improvements:
- Depend on serde's derive feature rather than serde_derive directly for simplified imports.
- Update to Rust 2018 idioms.
0.11.0
Breaking changes:
- The presence event has been modified to match the latest version of the spec. The spec was corrected to match the behavior of the Synapse homeserver.
Improvements:
- Dependencies have been updated to the latest versions.
0.10.0
Breaking changes:
- The
EventType
, and collections enums have new variants to support new events. - The
extra_content
method has been removed from the Event trait. - The
user_id
method from theRoomEvent
trait has been renamedsender
to match the specification. - The
origin_server_ts
value is now required for room events and is supported via a neworigin_server_ts
method on theRoomEvent
trait. MemberEventContent
has a newis_direct
field.FileMessageEventContent
has a newfilename
field.- File and thumbnail info have been moved from several message types to dedicated
FileInfo
,ImageInfo
, andThumbnailInfo
types. LocationMessageEventContent
has a new info field.PresenceEventContent
'scurrently_active
field has changed frombool
toOption
.TypingEventContent
contains a vector ofUserId
s instead ofEventId
s.- Height and width fields named
h
andw
in the spec now use the full namesheight
andwidth
for their struct field names, but continue to serialize to the single-letter names.
New features:
- ruma-events now supports all events according to r0.3.0 of the Matrix client-server specification.
- Added new event:
m.room.pinned_events
. - Added new event:
m.direct
.
Bug fixes:
- Several places where struct fields used the wrong key when serialized to JSON have been corrected.
- Fixed grammar issues in documentation.
0.9.0
Improvements:
- Added default values for various power level attributes.
- Removed Serde trait bounds on
StrippedStateContent
's generic parameter. - Updated to version 0.4 of ruma-signatures.
0.8.0
Breaking changes
- Updated serde to the 1.0 series.
0.7.0
Bug fixes:
- Make the
federate
field optional when creating a room.
0.6.0
Breaking changes:
- Updated ruma-identifiers to the 0.9 series.
0.5.0
Breaking changes:
- Updated ruma-identifiers to the 0.8 series.
0.4.1
Improvements:
- Relaxed version constraints on dependent crates to allow updating to new patch level versions.
0.4.0
Breaking changes:
- Updated serde to the 0.9 series.
The public API remains the same.
0.3.0
Improvements:
ruma_events::presence::PresenceState
now implementsDisplay
andFromStr
.
0.2.0
Improvements:
- Added missing "stripped" versions of some state events.
- All "stripped" versions of state events are now serializable.
0.1.0
Initial release.