All Projects → nuclearace → Swiftdiscord

nuclearace / Swiftdiscord

Licence: mit
Discord API Client for Swift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Swiftdiscord

Discord Global Mutual
Get the list of people that you have shared servers with
Stars: ✭ 39 (-62.14%)
Mutual labels:  discord-api, discord
Music Bot
Simple music bot with a full-blown queue system that is easy to understand
Stars: ✭ 102 (-0.97%)
Mutual labels:  discord-api, discord
Smorebot
SmoreBot is a fun, lightweight, multipurpose bot packed with features.
Stars: ✭ 51 (-50.49%)
Mutual labels:  discord-api, discord
Discpp
Simplified, but feature rich Discord API wrapper written in modern C++.
Stars: ✭ 31 (-69.9%)
Mutual labels:  discord-api, discord
Bot
A Discord bot for all your needs. With memes, utilities, moderation & more, Fire is the only bot you'll need.
Stars: ✭ 79 (-23.3%)
Mutual labels:  discord-api, discord
Modmail
A feature rich discord Modmail bot
Stars: ✭ 957 (+829.13%)
Mutual labels:  discord-api, discord
Coward
🐔 Coward is a Deno module for easy interaction with the Discord API.
Stars: ✭ 65 (-36.89%)
Mutual labels:  discord-api, discord
Discord.py
An API wrapper for Discord written in Python.
Stars: ✭ 9,239 (+8869.9%)
Mutual labels:  discord-api, discord
Discordrpcvs
An extension for Visual Studio 2017 that enables Discord Rich Presence.
Stars: ✭ 77 (-25.24%)
Mutual labels:  discord-api, discord
Basicbot
A basic example of a Discord Bot written in Python. (discord.py)
Stars: ✭ 73 (-29.13%)
Mutual labels:  discord-api, discord
Discord Rich Presence Tool
A C++/Qt program that lets you fill in your own custom Discord Rich Presence information for games and activities away from the PC.
Stars: ✭ 91 (-11.65%)
Mutual labels:  discord-api, discord
Client
A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.
Stars: ✭ 84 (-18.45%)
Mutual labels:  discord-api, discord
Eris
A NodeJS Discord library
Stars: ✭ 879 (+753.4%)
Mutual labels:  discord-api, discord
Discord4j
Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.
Stars: ✭ 973 (+844.66%)
Mutual labels:  discord-api, discord
Deku
Multi-purpose discord bot built with discord.js
Stars: ✭ 13 (-87.38%)
Mutual labels:  discord-api, discord
Dscord
Discord Library for D
Stars: ✭ 52 (-49.51%)
Mutual labels:  discord-api, discord
Dsharpplus
A .NET Standard library for making bots using the Discord API.
Stars: ✭ 635 (+516.5%)
Mutual labels:  discord-api, discord
Discordrb
Discord API for Ruby
Stars: ✭ 651 (+532.04%)
Mutual labels:  discord-api, discord
Dimscord
A Discord Bot & REST Library for Nim.
Stars: ✭ 67 (-34.95%)
Mutual labels:  discord-api, discord
Nino
🔨 Advanced and cute moderation discord bot as an entry of Discord's Hack Week!
Stars: ✭ 78 (-24.27%)
Mutual labels:  discord-api, discord

SwiftDiscord

Build Status

A Discord API client for Swift.

  • Features:
    • Sending and receiving voice.
    • macOS, iOS, and Linux** support.
    • Bot and User account support.
    • REST API separate from client. You can use the REST API separately to build your own client if you wish.
    • Configurable sharding.

** - Linux stability is currently limited to the stability of open source Foundation, but in thoery should support everything.

  • Requirements:

    • libopus
    • libsodium
    • Swift 3
  • Recommendend:

    • ffmpeg (Without FFmpeg you must send raw audio)
  • Installing and Building (Linux and macOS):

    • Install vapor dependencies:
      • brew tap vapor/tap && brew install ctls or eval "$(curl -sL https://apt.vapor.sh)"; sudo apt-get install vapor;
    • Create your Swift Package Manager project
    • Add .package(url: "https://github.com/nuclearace/SwiftDiscord", .upToNextMajor(from: "6.0.0")) to your dependencies in Package.swift
    • Add import SwiftDiscord to files you wish to use the module in.
    • Run swift build -Xlinker -L/usr/local/lib -Xlinker -lopus -Xcc -I/usr/local/include. The Xlinker options are needed to tell the package manager where to find the libsodium and opus libraries that were installed through Homebrew. The Xcc option tells clang where to find the headers for opus.

Xcode:

If you wish to use Xcode with your Swift Package Manager project, you can do swift package generate-xcodeproj. However after doing that, you'll have to make a change to SwiftDiscord's build settings. Just like when compiling from the command line, we have to tell Xcode where to find libsodium and libopus. This can be done by adding /usr/local/lib to the library search paths and /usr/local/include to the header search paths. This should be done for the SwiftDiscord and DiscordOpus targets. The DiscordOpus target also needs the -lopus option in "Other Linker Flags".

Usage

Checkout the getting started page for a quickstart guide.

Docs

Docs are generated with jazzy using the magical command:

jazzy --xcodebuild-arguments -project,SwiftDiscord.xcodeproj/,-scheme,SwiftDiscord-Package --documentation=UsageDocs/*.md --theme fullwidth --module SwiftDiscord

Must have setup an Xcode project

Why no CocoaPods?

I hate CocoaPods and the Swift Package Manager makes it easy to do system modules.

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