Skip to content

0.10.0 - Orbital Insertion

Latest
Compare
Choose a tag to compare
@jb3 jb3 released this 18 Jul 17:26
· 42 commits to master since this release
v0.10.0
b7b684b

Welcome to Nostrum 0.10.0, codenamed "Orbital Insertion".

image

"Orbital Insertion" is a testament to our commitment to continuous improvement
and our vision of providing a robust and reliable Discord library for the Elixir
community. We extend our gratitude to all contributors and users who have
supported us on this journey. Your feedback and collaboration are invaluable.

Breaking Changes

  • Message cache by @Th3-M4jor in #595
    • The introduction of the message cache changes the signature of the message update event callback.

      Previously, as messages were not cached, the signature was handle_event({:MESSAGE_UPDATE, new_msg, _ws_state}), with these changes the signature is now handle_event({:MESSAGE_UPDATE, {old_msg, new_msg}, _ws_state}), where old_msg may be null if the message is not present in the cache.

      If the message is present, the old_msg value will be the previous version of the message as found in cache. Nostrum will handle the updating of the cache such that further cache requests will fetch the new message.

    • Note this is breaking EVEN IF you use a no-op cache.

New Features

  • The aforementioned message cache is newly introduced in #595.
  • We support Discord's new zstd-stream compression version
    • This compression method produces considerably smaller payload sizes at the expense of slightly increased memory usage for lookup tables.
    • See documentation here on how to enable the new compression method. It is not enabled by default as it requires additional dependencies and some compiled modules.
    • Relevant PR: Support zstd-stream gateway compression by @jb3 in #598
  • We have increased the amount of the API that we support, stickers and previously missing guild attributes have been added:
    • Add full support for guild stickers by @jb3 in #584
    • Add new guild attributes by @jb3 in #585
  • Support all voice encryption modes by @BrandtHill in #599
  • feat(shard): manually shard connect and reconnect by @tignear in #596

Quality of Life

  • Remove blob of zlib data from state machine errors by @jb3 in #583
  • Add resume_gateway_url to Nostrum.Struct.Event.Ready by @jb3 in #588
  • Refactor executable checks and add version check for non-forked youtube-dl by @BrandtHill in #594
  • Add flag to disable HTTP 2 by @jb3 in #608

Fixes

  • Fix the error caused by trying to cast a datetime to datetime by @jb3 in #582
  • fix key error in ratelimiter by @Th3-M4jor in #606
  • Handle case of non matching gun conn pids when receiving a gun_down message by @Th3-M4jor in #611
  • Ensure user struct is casted properly before updating ets cache by @Th3-M4jor in #610

Documentation

Miscellaneous

New Contributors

Full Changelog: v0.9.1...v0.10.0