All Projects → SinisterRectus → Discordia

SinisterRectus / Discordia

Licence: mit
Discord API library written in Lua for the Luvit runtime environment

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Discordia

Serenity
A Rust library for the Discord API.
Stars: ✭ 1,387 (+307.94%)
Mutual labels:  discord-api, hacktoberfest, discord
Bot
A Discord bot for all your needs. With memes, utilities, moderation & more, Fire is the only bot you'll need.
Stars: ✭ 79 (-76.76%)
Mutual labels:  discord-api, hacktoberfest, discord
Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (+8.24%)
Mutual labels:  discord-api, hacktoberfest, discord
Discord.js
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
Stars: ✭ 16,432 (+4732.94%)
Mutual labels:  discord-api, hacktoberfest, discord
Aegis.cpp
Discord C++ library for interfacing with the API. Join our server:
Stars: ✭ 198 (-41.76%)
Mutual labels:  discord-api, discord
Discord Py Slash Command
A simple discord slash command handler for discord.py.
Stars: ✭ 183 (-46.18%)
Mutual labels:  discord-api, discord
Raid Toolbox
Raid ToolBox (RTB) is a big toolkit of Spamming/Raiding/Token management tools for discord.
Stars: ✭ 211 (-37.94%)
Mutual labels:  discord-api, discord
Discordeno
Discord API library for Deno
Stars: ✭ 254 (-25.29%)
Mutual labels:  discord-api, discord
Discordgo
(Golang) Go bindings for Discord
Stars: ✭ 2,582 (+659.41%)
Mutual labels:  discord-api, discord
Disco
Discord Python library for people that like to dance
Stars: ✭ 242 (-28.82%)
Mutual labels:  discord-api, discord
Travis Ci Discord Webhook
⛓ Here's your serverless solution for sending build status from Travis CI to Discord as webhooks.
Stars: ✭ 273 (-19.71%)
Mutual labels:  hacktoberfest, discord
Discordrpcmaker
Cross-platform Discord Rich Presence Maker, WITH BUTTONS!
Stars: ✭ 165 (-51.47%)
Mutual labels:  discord-api, discord
Sword
Discord library for Swift
Stars: ✭ 166 (-51.18%)
Mutual labels:  discord-api, discord
Kord
Idiomatic Kotlin Wrapper for The Discord API
Stars: ✭ 203 (-40.29%)
Mutual labels:  discord-api, discord
Lenoxbot
🖥️ LenoxBot is a Discord bot that offers many cool new features to your Discord server!
Stars: ✭ 163 (-52.06%)
Mutual labels:  discord-api, discord
discord-ui
A discord.py extension for sending, receiving and handling ui interactions in discord
Stars: ✭ 28 (-91.76%)
Mutual labels:  discord, discord-api
Disgord
Go module for interacting with the documented Discord's bot interface; Gateway, REST requests and voice
Stars: ✭ 277 (-18.53%)
Mutual labels:  discord-api, discord
Discord Api Docs
Official Discord API Documentation
Stars: ✭ 3,855 (+1033.82%)
Mutual labels:  discord-api, discord
Multistreamer
[discontinued] A webapp for publishing video to multiple streaming services at once.
Stars: ✭ 281 (-17.35%)
Mutual labels:  discord-api, discord
Xiao
Xiao is a Discord bot coded in JavaScript with discord.js using the Commando command framework. With over 500 commands, she is one of the most feature-rich bots out there. Formerly XiaoBot.
Stars: ✭ 302 (-11.18%)
Mutual labels:  discord-api, discord

Discordia

Discord API library written in Lua for the Luvit runtime environment

Introduction

Discord is a freeware, multi-platform, voice and text client. It has a documented RESTful API that allows developers to make Discord bots for use on their servers.

Luvit is an open-source, asynchronous I/O Lua runtime environment. It is a combination of LuaJIT and libuv, layered with various libraries to provide server-side functionality similar to that of Node.js, but with Lua instead of JavaScript. Luvit's companion package manager, lit, makes it easy to set up the Luvit runtime and its published libraries.

Discordia is a Lua wrapper for the official Discord API, and provides a high-level, object-oriented, event-driven interface for developing Discord bots. By using Lua's native coroutines, asynchronous HTTP and WebSocket communication is internally abstracted in a way that allows end-users to write blocking-style code without blocking I/O operations.

Join the Discord API server to discuss Discordia and other Discord libraries!

Join the independent Discordia server for more!

Installation

  • To install Luvit, visit https://luvit.io and follow the instructions provided for your platform.
  • To install Discordia, run lit install SinisterRectus/discordia
  • Run your bot script using, for example, luvit bot.lua

Example

local discordia = require('discordia')
local client = discordia.Client()

client:on('ready', function()
	print('Logged in as '.. client.user.username)
end)

client:on('messageCreate', function(message)
	if message.content == '!ping' then
		message.channel:send('Pong!')
	end
end)

client:run('Bot INSERT_TOKEN_HERE')

Documentation

Please visit this project's Wiki for documentation and tutorials.

History

The earliest version of Discordia, before it even had that name, was released as a Just Cause 2 Multiplayer module on 7 March 2016. It utilized LuaSocket, LuaSec, and (eventually) Copas to provide basic REST functionality in a sandboxed Lua 5.2 environment. The goal was to bridge the game chat with a Discord client. Due to a lack of WSS support (at the time), the project was put on hold in favor of a general-purpose Lua library for Discord. After finishing a relatively stable version of Discordia, the JC2MP bridge was re-designed to connect with Discordia via inter-process communication.

FAQs

Why Lua?

  • Lua is a lightweight scripting language that tends to be beginner-friendly, but powerful in the hands of an advanced user at the same time. Although Lua might not have the same popularity as that of other scripting languages such as Python or JavaScript, Lua's expandability makes it equally as capable as the others, while remaining easy-to-use and often more resource efficient.

Why Luvit?

  • Luvit makes Lua web development an easy task on multiple platforms. Its installation process is (optionally) automated and uses pre-built luvi cores when available. It also comes with many libraries essential to async I/O programming and networking. Compared to Node.js, Luvit advertises similar speed, but reduced memory consumption. Compared to other Discord libraries, Discordia is expected to perform well due Luvit's use of LuaJIT, although it has not been benchmarked.

Can I run this on a different Lua distribution?

  • The development and deployment of Discordia relies on the Luvit framework and its package manager. Porting Discordia and its dependencies to classic Lua or LuaJIT may be possible, but this is not a current project goal.

How can I contribute?

  • Pull requests are welcomed, but please check with the library author before starting a major implementation. Contributions to the Wiki are helpful, too.

Are there other Discord libraries?

  • Absolutely. Check the official libraries page of the Discord API documentation or the unofficial Discord API server linked above.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].