Skip to content

Releases: Remora/Remora.Discord

v1.0.0 - Initial full release

25 Dec 12:59
8f86796
Compare
Choose a tag to compare

This marks the first full and stable release of Remora.Discord - enjoy!

Packages should be up momentarily on nuget, and fresh documentation pages should follow suit.

v1.0.0-beta3 - Partial types and unstable API

17 Oct 13:49
4de0d06
Compare
Choose a tag to compare

This release implements better support for partial types throughout the library, as well as improving the signatures of some endpoints and type definitions.

In addition, this release brings a quickstart guide and online documentation for the project - check out https://nihlus.github.io/Remora.Discord/ for the latest information about the most recent tagged release.

Notable Changes

  • Partial types are now in place throughout the codebase, replacing their main types where appropriate
  • Audit log changes now deserialize to the appropriate type (still exposed as an Optional, though)
  • Guild templates are now available in Remora.Discord.Unstable, and will remain there until official documentation is merged.
  • The transport layer of the gateway client is now abstracted out, and does not directly rely on websockets. As a result, the gateway now has integration tests for most expected state flows (reconnect, resume, etc)
  • All REST API implementations now have 100% code coverage, and should be working as intended (superficially, at least)
  • Bug Fixes

    • Rest errors now propagate properly

v1.0.0-beta2 - Fixes and v8 API

06 Oct 20:19
e261f03
Compare
Choose a tag to compare
Pre-release

This release builds on the latest Discord documentation, and implements the v8 gateway and REST API.

Notable Changes

  • The gateway client now defaults to the v8 API
  • The REST API now defaults to the v8 API
  • Some breaking changes have been introduced in the v6 to v8 transition. A major version increment would normally have taken place, but this is a beta release, so it was not deemed necessary.

Bug Fixes

  • Fixed Http and Discord error information not surviving a FromError call.

v1.0.0-beta1 - Initial public release

06 Oct 13:28
d3e3246
Compare
Choose a tag to compare
Pre-release

This release marks the first public release of Remora.Discord onto nuget. It is a milestone release, containing a full implementation of the current REST API provided by Discord, as well as a fully-functional gateway client.

Currently, the documentation for the library is somewhat lacking - to get started, please take a look at the samples available in the repository to see how the library might be used.

At this point, no high-level abstractions - such as a command library or entity-oriented services - have been created, but are slated for a future release.

Features

REST

  • Full API surface with cohesive signatures
  • 100% code coverage in unit tests of the API implementations
  • Client-side safeties to prevent API misuse (parameters too long, files too large, disallowed values, etc)
  • Client-side rate limiting
  • DI-friendly!

Gateway

  • Full support for the v6 gateway protocol
  • Reconnections and resumes supported
  • User-facing ability to both receive and submit events and commands to and from the gateway
  • Highly concurrent, fully asynchronous
  • Graceful terminations

Package breakdown

Remora.Discord

Metapackage for the subsystems and components of the library.

Remora.Discord.Core

Common types for both abstractions and implementors. Currently a very small library with only three types - it may be merged into one of the others in the future.

Remora.Discord.Rest

Default implementation of the REST API.

Remora.Discord.Gateway

Default implementation of the gateway protocol, and a fully functional gateway client. If you're building a bot but don't want to take a dependency on the metapackage, this is probably what you want.

Remora.Discord.API.Abstractions

Abstract interfaces for all Discord types and API surfaces. Generally, consumer projects (such as plugins, command frameworks, etc) should depend on this library.

Remora.Discord.API

Default implementations of the abstract interfaces provided in API.Abstractions.

Installation

Get it on nuget

Caveats, deficiencies, and gotchas

  • The gateway client has no client-side rate limiting in place - be mindful when submitting commands to it
  • The gateway client has no unit tests, and is not as rigorously tested as the REST API. If you run into any unexpected behaviour, please report it as soon as possible.