dartsicord 0.1.0+2

  • README.md
  • Installing
  • Versions
  • 70


Build Status Pub Discord

dartsicord is a Dart library intending to provide partial to full functionality of Discord's API. This library started out as a fun project, but it has become a serious project that I'd like to finish. This library is not at a stable state quite yet, but I'd love for you to give it a try and throw some issues at my face so I can catch them and fix them.

This library does not support voice. It may in the future, but this is a low-priority feature.


dartsicord intends to be a simple, lightweight, efficient Discord library for building basic to large bots. There's no fuss over basic things you need to get done. The library simplifies the API quite a bit.


Issues are good! I hope you find some. I'd be more than happy to fix them. Just use the Issues tab (which I regularly maintain) and put your words and issues there.


A simple ping-pong bot can be located in the example directory, or can be found here.

import "package:dartsicord/dartsicord.dart";

void main() {
    final client = new DiscordClient();

    client.onMessage.listen((event) async {
        if (event.message.content.toLowerCase() == "ping")
            await event.message.reply("pong");



Feel free to fork and contribute. Try to keep my style of code, or else I might get mad. That means double quotes and decent organization. I'll still probably fix any consistency issues after you've made a pull request.

If you are too worried you'll break something, that's alright! I'm looking for those who would write unit tests (in the test directory) and more examples (in the example directory). I'm open to anything!



Fix critical heartbeat formatting issue.


25 Dec 2017 (Merry Christmas again)

Woohoo! 0.1.0 is the first major pre-1.0 version. This version attempts to complete all events, most REST methods, and adds some missing features I've forgotten to add in the past. I've also reworked the networking system (again), and made everything a bit more user friendly. In some coming updates, I'll be going through documentation and making everything very specific and easy to use.

  • Add author support
  • Add channel overwrites
  • Rework permission system
  • Rework Route system
  • Rework a few update events
  • Finish channel events and methods
  • Finish client events


25 Dec 2017 (Merry Christmas)

In 0.0.13, I added some more core concepts, such as invites, reactions, and more. I've added more events and methods as well. Additionally, I've made a lot of fixes to untested features. Probably the most exciting of all is the new example, giveaway. Check out the example directory for the new example. Comments are included to show how the library works and processes reactions. I plan to soon have most, if not all, events/methods required implemented. From there, I will be adding more unit tests. If you think this is a cool library, tell some of your friends. I need others to help contribute and find bugs!

  • Add reaction support
  • Add invite support
  • Many fixes (like a lot of fixes)
  • internals -> networking


24 Dec 2017

This update focuses on unit testing! (yay) I'm using the generic test library for Dart allowing for simple, straight-forward unit testing. You can find the tests in the test directory. They have been set up to execute often on Travis-CI, so you'll notice a new build badge on the README. Additionally, I've also implemented Resuming, a vital feature for maintaining a connection with the WS.

  • Add test directory
  • Add a message test
  • Add get message from a channel
  • connect -> _establishConnection
  • _reconnect -> _establishConnection with positional parameter reconnect: true
  • Add client.disconnect
  • Use Travis for building/testing (.travis.yml)


24 Dec 2017

This update focuses on more UX changes. I've added an in-depth PROGRESS file showing the progress of the library with its events and methods. I've also focused on completely implementing Websockets as well as trying to make some cacheing systems more efficient. I've also renamed the resources directory to objects because some of the objects were not considered resources. Additionally, I've renamed DiscordObject to simply Resource, as a resource is any object that has a Snowflake. Typically, these objects could be referred to as instantiated classes, while non-resource objects such as Game could be simply referred to as a struct.

  • Abide to more linter preferences
  • Add Webhook support
  • Rename resources to objects
  • Rename DiscordObject to Resource
  • Add Webhook Update event
  • Add Presence Update event
  • Add PROGRESS.md indicating library progress


23 Dec 2017

This update focuses mostly on user experience rather than new features. I have recently been on vacation, so I apologize for the few updates! If you haven't already noticed, I'm going to start adding more detail into the CHANGELOG like this short paragraph as well as a date in which the update was released. Additionally, I'm planning on making dartsicord a little more serious than I planned it to be.

  • Abide to more linter preferences
  • Organize code a bit better
  • Add more guild methods
  • Add more channel methods
  • Add more message methods
  • Add more documentation to most things that don't already have documentation


  • More guild events
  • Kind of just a test update from a different machine


  • Add status updating support
  • Add game class
  • Add enums for status and activity types
  • Change linter preferences and abide by them (for the most part)


  • Add a lot more events
  • Move events from event.dart to events directory
  • Fix up some fromDynamic to fromMap parameter types
  • More REST methods
  • More work on Snowflake usage


  • Replace int-based id with Snowflake class
  • Add Emoji class
  • Add Emoji events
  • Add Emoji methods
  • Add User banned and unbanned events
  • Use localEndpoint instead of endpoint + id


  • Add more guild events
  • More documentation for events and stuff
  • Move around some client methods for internal organization


  • Rehaul events
  • fromDynamic is now fromMap
  • More fixes


  • More documentation
  • Fixes


  • See GitHub

1. Depend on it

Add this to your package's pubspec.yaml file:

  dartsicord: "^0.1.0+2"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter packages get

Alternatively, your editor might support pub get or packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:dartsicord/dartsicord.dart';
Version Uploaded Documentation Archive
0.1.0+2 Dec 28, 2017 Go to the documentation of dartsicord 0.1.0+2 Download dartsicord 0.1.0+2 archive
0.1.0+1 Dec 28, 2017 Go to the documentation of dartsicord 0.1.0+1 Download dartsicord 0.1.0+1 archive
0.1.0 Dec 25, 2017 Go to the documentation of dartsicord 0.1.0 Download dartsicord 0.1.0 archive
0.0.13 Dec 25, 2017 Go to the documentation of dartsicord 0.0.13 Download dartsicord 0.0.13 archive
0.0.12 Dec 25, 2017 Go to the documentation of dartsicord 0.0.12 Download dartsicord 0.0.12 archive
0.0.11 Dec 24, 2017 Go to the documentation of dartsicord 0.0.11 Download dartsicord 0.0.11 archive
0.0.10 Dec 24, 2017 Go to the documentation of dartsicord 0.0.10 Download dartsicord 0.0.10 archive
0.0.9 Dec 20, 2017 Go to the documentation of dartsicord 0.0.9 Download dartsicord 0.0.9 archive
0.0.8 Dec 20, 2017 Go to the documentation of dartsicord 0.0.8 Download dartsicord 0.0.8 archive
0.0.7+hotfix.oopsie Dec 19, 2017 Go to the documentation of dartsicord 0.0.7+hotfix.oopsie Download dartsicord 0.0.7+hotfix.oopsie archive

All 15 versions...


This feature is new.
We welcome feedback.
More details: scoring.

We analyzed this package, and provided a score, details, and suggestions below.

  • completed on Feb 3, 2018
  • Dart: 2.0.0-dev.20.0
  • pana: 0.10.1


Describes how popular the package is relative to other packages. [more]
41 / 100
Code health derived from static analysis. [more]
99 / 100
Reflects how tidy and up-to-date the package is. [more]
100 / 100
Overall score:
Weighted score of the above. [more]


Detected platforms: Flutter, other

Primary library: package:dartsicord/dartsicord.dart with components: io.


  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Maintain an example.

    None of the files in your example/ directory matches a known example patterns. Common file name patterns include: main.dart, example.dart or you could also use dartsicord.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.20.1 <2.0.0
http ^0.11.3+16 0.11.3+16
Transitive dependencies
async 2.0.3
charcode 1.1.1
collection 1.14.5
http_parser 3.1.1
path 1.5.1
source_span 1.4.0
string_scanner 1.0.2
typed_data 1.1.5
Dev dependencies
test ^0.12.0