Remedy

Publish Docs Codacy Security Scan Credo, ExDoc, Doctor, Dialyzer

Remedy is an elixir library for interracting with the Discord API. The project began as a fork of the Nostrum library

To Do

  • [ ] Complete doc coverage
    • [ ] make doctests work
  • [ ] Complete test coverage
  • [x] new github actions
  • [x] Convert structs to schema
  • [x] Convert Cache to Ecto + Etso
  • [x] use Gun as the only HTTP client
  • [ ] Re implement voice
  • [x] rewrite gateway modules
  • [x] Code clean up to respect contexts
  • [ ] smash morphix apart and just take the 1 function i use
  • [ ] Remove config.exs

Installation

defp deps() do
  [
    {:remedy, "~> 0.6.8"}
  ]
end

Using Remedy with Phoenix

Directly (Phoenix), or indirectly (Remedy, via Gun), both of these libraries require Cowlib, which unfortunately suffers from being optimistic about peoples behaviour on the internet. Discord is notorious for misbehaving in regards to RFC7230 3.3.2. and conversely, Cowlib is notorious for strictly adhering to this proposed standard, even at its own peril.

Remedy uses patched versions of both of these libraries. Gun is the same as the 2.0rc at the time of publishing, and Cowlib is patched to remove the strict adherance to RFC7230. It is completely backwards compatible with the regular Cowlib 2.11 published on hex. Except it is more forgiving in regards to the the proposed standard.

TL;DR.

If you are using Phoenix or any other library that requires Cowlib 2.11. also add the following to your deps

defp deps do
  [
    {:cowlib, "~> 2.11", hex: :remedy_cowlib, override: true}
  ]
end

License

MIT