mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
244 lines
11 KiB
Text
244 lines
11 KiB
Text
Version 0.12.1:
|
||
2019-01-16 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Improvements:
|
||
- Reexport missing JidParseError from the jid crate.
|
||
|
||
Version 0.12.0:
|
||
2019-01-16 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Breaking changes:
|
||
- Update dependencies.
|
||
- Switch to git, upstream is now available at
|
||
https://gitlab.com/xmpp-rs/xmpp-parsers
|
||
- Switch to Edition 2018, this removes support for rustc
|
||
versions older than 1.31.
|
||
- Implement support for XEP-0030 2.5rc3, relaxing the ordering
|
||
of children in disco#info.
|
||
* Improvements:
|
||
- Test for struct size, to keep them known and avoid bloat.
|
||
- Add various constructors to make the API easier to use.
|
||
- Reexport Jid from the jid crate, to avoid any weird issue on
|
||
using different incompatible versions of the same crate.
|
||
- Add forgotten 'ask' attribute on roster item (thanks O01eg!).
|
||
- Use cargo-fmt on the codebase, to lower the barrier of entry.
|
||
- Add a disable-validation feature, disabling many checks
|
||
xmpp-parsers is doing. This should be used for software
|
||
which want to let invalid XMPP pass through instead of being
|
||
rejected as invalid (thanks Astro-!).
|
||
|
||
Version 0.11.1:
|
||
2018-09-20 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Improvements:
|
||
- Document all of the modules.
|
||
|
||
Version 0.11.0:
|
||
2018-08-03 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Breaking changes:
|
||
- Split Software Version (XEP-0092) into a query and response
|
||
elements.
|
||
- Split RSM (XEP-0059) into a query and response elements.
|
||
- Fix type safety and spec issues in RSM and MAM (XEP-0313).
|
||
- Remove item@node and EmptyItems from PubSub events
|
||
(XEP-0060).
|
||
* Improvements:
|
||
- Document many additional modules.
|
||
- Add the <failure/> SASL nonza, as well as the SCRAM-SHA-256
|
||
and the two -PLUS mechanisms.
|
||
|
||
Version 0.10.0:
|
||
2018-07-31 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- Added <stream:stream>, SASL and bind (RFC6120) parsers.
|
||
- Added a WebSocket <open/> (RFC7395) implementation.
|
||
- Added a Jabber Component <handshake/> (XEP-0114).
|
||
- Added support for User Nickname (XEP-0172).
|
||
- Added support for Stream Management (XEP-0198).
|
||
- Added support for Bookmarks (XEP-0048).
|
||
- Publish-Subscribe (XEP-0060) now supports requests in
|
||
addition to events.
|
||
* Breaking changes:
|
||
- Switch from std::error to failure to report better errors.
|
||
- Bump to minidom 0.9.1, and reexport minidom::Element.
|
||
* Improvements:
|
||
- Add getters for the best body and subject in message, to make
|
||
it easier to determine which one the user wants based on
|
||
their language preferences.
|
||
- Add constructors and setters for most Jingle elements, to
|
||
ease their creation.
|
||
- Add constructors for hash, MUC item, iq and more.
|
||
- Use more macros to simplify and factorise the code.
|
||
- Use traits to define iq payloads.
|
||
- Document more modules.
|
||
|
||
Version 0.9.0:
|
||
2017-10-31 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- Blocking Command (XEP-0191) has been added.
|
||
- Date and Time Profiles (XEP-0082) has been added, replacing
|
||
ad-hoc use of chrono in various places.
|
||
- User Mood (XEP-0107) has been added.
|
||
* Breaking changes:
|
||
- Fix subscription="none" not being the default.
|
||
- Add more type safety to pubsub#event.
|
||
- Reuse Jingle’s ContentId type in JingleFT.
|
||
- Import the disposition attribute values in Jingle.
|
||
* Improvements:
|
||
- Refactor a good part of the code using macros.
|
||
- Simplify the parsing code wherever it makes sense.
|
||
- Check for children ordering in disco#info result.
|
||
- Finish implementation of <received/>, <checksum/> and
|
||
<range/> in JingleFT.
|
||
- Correctly serialise <ping/>, and test it.
|
||
|
||
Version 0.8.0:
|
||
2017-08-27 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- iq:version (XEP-0092) has been added.
|
||
- Finally implement extension serialisation in disco.
|
||
* Breaking changes:
|
||
- Wrap even more elements into their own type, in jingle,
|
||
jingle_ft, roster, message.
|
||
- Split loose enums into multiple structs where it makes sense,
|
||
such as for IBB, StanzaId, Receipts.
|
||
- Split disco query and answer elements into their own struct,
|
||
to enforce more guarantees on both.
|
||
* Improvements:
|
||
- Use Vec::into_iter() more to avoid references and clones.
|
||
- Make data_forms propagate a media_element error.
|
||
- Document more of disco, roster, chatstates.
|
||
- Use the minidom feature of jid, for IntoAttributeValue.
|
||
- Add a component feature, changing the default namespace to
|
||
jabber:component:accept.
|
||
- Add support for indicating ranged transfers in jingle_ft.
|
||
|
||
Version 0.7.1:
|
||
2017-07-24 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Hotfixes:
|
||
- Stub out blake2 support, since the blake2 crate broke its API
|
||
between their 0.6.0 and 0.6.1 releases…
|
||
|
||
Version 0.7.0:
|
||
2017-07-23 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- Jingle Message Initialisation (XEP-0353) was added.
|
||
- The disco#items query (XEP-0030) is now supported, in
|
||
addition to the existing disco#info one.
|
||
* Breaking changes:
|
||
- Replaced many type aliases with proper wrapping structs.
|
||
- Split Disco into a query and a result part, since they have
|
||
very different constraints.
|
||
- Split IqPayload in three to avoid parsing queries as results
|
||
for example.
|
||
* Improvements:
|
||
- Use TryFrom from the try_from crate, thus removing the
|
||
dependency on nightly!
|
||
- Always implement From instead of Into, the latter is
|
||
generated anyway.
|
||
- Add helpers to construct your Presence stanza.
|
||
|
||
Version 0.6.0:
|
||
2017-06-27 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- In-Band Registration (XEP-0077) was added.
|
||
- Multi-User Chat (XEP-0045) got expanded a lot, thanks pep.!
|
||
* Breaking changes:
|
||
- Added wrappers for Strings used as identifiers, to add type
|
||
safety.
|
||
- Use chrono’s DateTime for JingleFT’s date element.
|
||
- Use Jid for JingleS5B’s jid attribute.
|
||
* Improvements:
|
||
- Use more macros for common tasks.
|
||
- Add a constructor for Message and Presence.
|
||
- Implement std::fmt::Display and std::error::Error on our
|
||
error type.
|
||
- Fix DataForms serialisation.
|
||
- Fix roster group serialisation.
|
||
- Update libraries, notably chrono whose version 0.3.1 got
|
||
yanked.
|
||
|
||
Version 0.5.0:
|
||
2017-06-11 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- Implementation of the roster management protocol defined in
|
||
RFC 6121 §2.
|
||
- Implementation of PubSub events (except collections).
|
||
- Early implementation of MUC.
|
||
* Breaking changes:
|
||
- Rename presence enums to make them easier to use.
|
||
* Improvements:
|
||
- Make hashes comparable and hashable.
|
||
- Make data forms embeddable easily into minidom
|
||
Element::builder.
|
||
|
||
Version 0.4.0:
|
||
2017-05-28 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Incompatible changes:
|
||
- Receipts now make the id optional, as per the specification.
|
||
- Hashes now expose their raw binary value, instead of staying
|
||
base64-encoded.
|
||
- Parse dates (XEP-0082) in delayed delivery (XEP-0203) and
|
||
last user interaction (XEP-0319), using the chrono crate.
|
||
* Improvements:
|
||
- Removal of most of the remaining clones, the only ones left
|
||
are due to minidom not exposing a draining iterator over the
|
||
children.
|
||
- Finish to parse all of the attributes using get_attr!().
|
||
- More attribute checks.
|
||
- Split more parsers into one parser per element.
|
||
- Rely on minidom 0.4.3 to serialise more standard types
|
||
automatically.
|
||
- Implement forgotten serialisation for data forms (XEP-0004).
|
||
- Implement legacy capabilities (XEP-0115) for compatibility
|
||
with older software.
|
||
|
||
Version 0.3.0:
|
||
2017-05-23 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Big changes:
|
||
- All parsers and serialisers now consume their argument, this
|
||
makes the API way more efficient, but you will have to clone
|
||
before passing your structs in it if you want to keep them.
|
||
- Payloads of stanzas are not parsed automatically anymore, to
|
||
let applications which want to forward them as-is do so more
|
||
easily. Parsing now always succeeds on unknown payloads, it
|
||
just puts them into an Unknown value containing the existing
|
||
minidom Element.
|
||
* New parsers/serialisers:
|
||
- Last User Interaction in Presence, XEP-0319.
|
||
* Improved parsers/serialisers:
|
||
- Message now supports subject, bodies and threads as per
|
||
RFC 6121 §5.2.
|
||
- Replace most attribute reads with a nice macro.
|
||
- Use enums for more enum-like things, for example Algo in
|
||
Hash, or FieldType in DataForm.
|
||
- Wire up stanza-id and origin-id to MessagePayload.
|
||
- Wire up MAM elements to message and iq payloads.
|
||
- Changes in the RSM API.
|
||
- Add support for more data forms elements, but still not the
|
||
complete set.
|
||
- Thanks to minidom 0.3.1, check for explicitly disallowed
|
||
extra attributes in some elements.
|
||
* Crate updates:
|
||
- minidom 0.4.1
|
||
|
||
Version 0.2.0:
|
||
2017-05-06 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* New parsers/serialisers:
|
||
- Stanza error, as per RFC 6120 §8.3.
|
||
- Jingle SOCKS5 Transport, XEP-0260.
|
||
* Incompatible changes:
|
||
- Parsers and serialisers now all implement TryFrom<Element>
|
||
and Into<Element>, instead of the old parse_* and serialise_*
|
||
functions.
|
||
- Presence has got an overhaul, it now hosts show, statuses and
|
||
priority in its struct. The status module has also been
|
||
dropped.
|
||
- Message now supports multiple bodies, each in a different
|
||
language. The body module has also been dropped.
|
||
- Iq now gets a proper StanzaError when the type is error.
|
||
- Fix bogus Jingle payload, which was requiring both
|
||
description and transport.
|
||
* Crate updates:
|
||
- minidom 0.3.0
|
||
|
||
Version 0.1.0:
|
||
2017-04-29 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
|
||
* Implement many extensions.
|