Memory optimized, simple, and feature rich Discord API wrapper written in Nim. (Mirror of https://github.com/SeanOMik/nimcord)
This repository has been archived on 2023-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
SeanOMik 44d52848aa
Fix creating several heartbeat threads
2020-09-25 16:21:35 -05:00
examples Don't export Shard.reconnectShard 2020-08-28 16:07:57 -05:00
src Fix creating several heartbeat threads 2020-09-25 16:21:35 -05:00
.gitignore Add generate docs scripts 2020-06-18 16:03:34 -05:00
LICENSE Initial commit 2020-05-27 19:15:44 -05:00
README.md Fix creating several heartbeat threads 2020-09-25 16:21:35 -05:00
generate_docs.bat Generate documentation for new command system 2020-08-13 19:36:25 -05:00
generate_docs.sh Generate documentation for new command system 2020-08-13 19:36:25 -05:00
nimcord.nimble Fix reconnecting 2020-09-25 15:21:41 -05:00

README.md

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++.

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

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
  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 directory.

Todo:

  • Finish all REST API calls.
  • Handle all gateway events.
  • Reconnecting.
  • Configurable Logger.
  • Add library to official Nimble package repository.
  • Memory optimizations.
    • Member
    • Channel
    • Guild
    • Misc.
  • Sharding.
  • Deglobalize (Remove global client instance).
  • Audit log.
  • Voice.