Skip to content

v1.0.0-beta1 - Initial public release

Pre-release
Pre-release
Compare
Choose a tag to compare
@Nihlus Nihlus released this 06 Oct 13:28
d3e3246

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.