https://github.com/SeanOMik/nimcord
Memory optimized, simple, and feature rich Discord API wrapper written in Nim.
https://github.com/SeanOMik/nimcord
Last synced: about 1 month ago
JSON representation
Memory optimized, simple, and feature rich Discord API wrapper written in Nim.
- Host: GitHub
- URL: https://github.com/SeanOMik/nimcord
- Owner: SeanOMik
- License: mit
- Archived: true
- Created: 2020-05-28T00:15:43.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-10-08T16:42:21.000Z (over 3 years ago)
- Last Synced: 2024-07-31T20:43:26.356Z (9 months ago)
- Language: Nim
- Homepage:
- Size: 308 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- discord-api-libs - nimcord - Memory optimized, simple, and feature rich Discord API wrapper written in Nim. (Libraries / Nim)
README
NimCord
Memory optimized, simple, and feature rich Discord API wrapper written in Nim.# NimCord
A Discord API wrapper written in Nim. Inspired, and created by the author of a memory optimized Discord Library named [DisC++](https://github.com/DisCPP/DisCPP).## Note:
Library is discontinued. Due to Discord's lack of communication and out-of-touch attitude towards library developers, this library is no longer being maintained. Recommended alternative is [Dimscord](https://github.com/krisppurg/dimscord).## State
NimCord is currently in a testing state. If you want to use it, you can but you may encounter errors. If you do encounter errors, create a GitHub issue or join the Discord server.## Dependencies
* [ws](https://github.com/treeform/ws)## Documenation
You can generate documenation by running `generate_docs.bat/sh` (depending on your system). Documentation is outputted to the `docs` directory.## What makes NimCord different?
* Low memory usage.
* Even though its memory optimized, it's still easy to use without loosing any features.
* If an member, or channel, is somehow not in cache, it will request the object from the REST api and update the cache to ensure that your bot doesn't crash.
* Other libraries don't have a command handler built in and also doesn't have a event handler that supports multiple listeners.## How to install:
1. Install [Nim](https://nim-lang.org/)
2. Install NimCord.
* NimCord is not yet available on the official Nimble package repository. To install it, you need to clone this repo and in the project root, run: `nimble install`### Note:
* To compile you must define `ssl` example: `nim compile -d:ssl --run .\examples\basic.nim`You can view examples in the [examples](examples) directory.
# Todo:
- [x] Finish all REST API calls.
- [x] Handle all gateway events.
- [x] Reconnecting.
- [ ] Configurable Logger.
- [ ] Add library to official Nimble package repository.
- [ ] Memory optimizations.
- [ ] Member
- [ ] Channel
- [ ] Guild
- [ ] Misc.
- [x] Sharding.
- [ ] Deglobalize (Remove global client instance).
- [ ] Audit log.
- [ ] Voice.