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 a061c825ef
Only add shard in identify if shard count is more than 1
2020-06-23 23:06:56 -05:00
.vscode Try to get debugger working. 2020-06-18 15:32:18 -05:00
examples Only add shard in identify if shard count is more than 1 2020-06-23 23:06:56 -05:00
src Only add shard in identify if shard count is more than 1 2020-06-23 23:06:56 -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 Sharding 2020-06-23 00:08:25 -05:00
generate_docs.bat Fix documentation generating scripts. 2020-06-22 15:57:42 -05:00
generate_docs.sh Fix documentation generating scripts. 2020-06-22 15:57:42 -05:00
nimcord.nimble Create a working nimble file 2020-06-22 15:25:42 -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:

  • 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.
  • Audit log.
  • Voice.