cryogonal
cryogonal
Composable Discord API library and toolkit for Crystal.
This library is a continuation of discordcr written by meew0, myself, and RX14. For more details on the differences and motivation between the two, see the comparison section below.
References
- Library documentation (Coming soon - you can build locally for now.)
- Library support server
- Crystal language
- Discord API documentation
Introduction
Cryogonal aims to be a library that implements a bare "toolkit" that abstracts Discord's API. The library is composed of small components that have as little state as possible, if any at all, laid out in a manner that directly translates as close to Discord's official API documentation as closely as possible. In other words, Discord's documentation should also serve as documentation for this library. A benefit of this approach is that the library's stability will closely follow that of Discord's.
Many of the "lower level" components require experienced knowledge of Discord's API to operate to their fullest potential. That said, we aim to leverage features of the Crystal language as well as documentation of best practices and common pitfalls to help users write safe and efficient bots regardless.
The library will also provide higher level types that compose these components and expose an API that allows for easy designing of highly efficient bots and applications by default. Users that need behaviors optimized for their use cases can use the public internals to get their job done, at the exchange of taking full responsibility of runtime performance and stability.
Library Status
This isn't usable yet, unless you're looking to help with development. Please contact me first if you're interested in doing so.
Installation
-
Add the dependency to your
shard.yml
:dependencies: cryogonal: github: z64/cryogonal
-
Run
shards install
Usage
require "cryogonal"
Comparison to discordcr
TODO
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/z64/cryogonal/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Zac Nowicki - creator and maintainer
- meew0 - discordcr author
- RX14 - discordcr contributor
- GeopJr - library name inspiration