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 4cf31f1bc3
Use logger in most places and just some bug fixes
2020-08-20 19:12:42 -05:00
.vscode Try to get debugger working. 2020-06-18 15:32:18 -05:00
examples Use logger in most places and just some bug fixes 2020-08-20 19:12:42 -05:00
src Use logger in most places and just some bug fixes 2020-08-20 19:12:42 -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 typo 2020-08-20 09:35:08 -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 Clean-up and Nim version fix. 2020-08-05 03:06:52 -04: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:

  • If you already have Websocket.nim installed, you need to make sure you have version 0.4.1 installed.
  • 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
  • Memory optimizations.
    • Member
    • Channel
    • Guild
    • Misc.
  • Sharding.
  • Deglobalize (Remove global client instance).
  • Audit log.
  • Voice.