discordnim

Discord library for Nim

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:23

Installation

nimble install discordnim
choosenim install discordnim
git clone https://github.com/Krognol/discordnim

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
discordnim - - - - - - -

Source

Repository https://github.com/Krognol/discordnim
Homepage https://github.com/Krognol/discordnim
Registry Source nimble_official

README

Discordnim

A Discord library for Nim.

Websockets from niv/websocket.nim

Installing

This assumes that you have your Nim environment (including Nimble) already set up, and that your Nim version is 1.0.4 or greater. You can check your version with nim --version

nim -v
Nim Compiler Version 1.1.1 [Linux: amd64]
Compiled at 2020-01-08
Copyright (c) 2006-2019 by Andreas Rumpf

active boot switches: -d:release

nimble install discordnim

Usage

There are some examples in the examples folder.

Initialising a Shard:

when isMainModule:
    import asyncdispatch, discordnim, ospaths

    proc messageCreate(s: Shard, m: MessageCreate) =
        if s.cache.me.id == m.author.id: return
        if m.content == "ping":
            asyncCheck s.channelMessageSend(m.channel_id, "pong")

    let d = newShard("Bot " & getEnv("token")) // get token in environment variables

    proc endSession() {.noconv.} =
        waitFor d.disconnect()

    setControlCHook(endSession)
    d.compress = true
    let removeProc = d.addHandler(EventType.message_create, messageCreate)
    waitFor d.startSession()
    removeProc()

All programs have to be compiled with the -d:ssl flag.

Example :

nimble build -d:ssl

OR

nim compile -d:ssl --run youfile.nim

When compression is enabled you need a zlib1.dll present. Somewhere. I don't know where it should be placed.

Documentation

Contributing

  1. Fork it ( https://github.com/Krognol/discordnim/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request