/karen

A highly efficient, multipurpose Discord bot written in Golang.

Primary LanguageGoGNU Affero General Public License v3.0AGPL-3.0

karen
build status codebeat badge GitHub tag Go Walker
Karen is a highly efficient, multipurpose Discord bot written in Golang.

Got any problems or just want to chat with me and other devs?
Join the Discord Server! :)


Invite

Public invite link is coming after the private beta ends.

Want access?
Register here: https://goo.gl/forms/9J9GYMg8c9IM6a5Z2

Can I go get this bot?

Short answer: No you can't.

Long answer:
No you can't because go get sucks.

Huge projects like this need proper version locking.
gopkg.in is a nice try but not good enough.

I use https://glide.sh

Can I go build this bot?

Short answer: No you can't.

Long answer:
No you can't because go build sucks.

I use a sophisticated and completely handcrafted build system that uses modular makefiles at it's core.
Thus this is most likely the only go-project that supports c-style macros in comments and conditional compilation.
Are we awesome yet?

Can you help me self-hosting Karen?

No.
There will be neither guides nor setup help.
The code is provided for transparency and community-contributions only.
If you decide to fork Karen remember to comply with the LICENSE.

Why are you saying high performance all the time?

Why do we live in a time where it's acceptable that an EMPTY Java class consumes 10mb RAM?
Why does no one care about optimizing anymore?

That's why I'm building Karen.
I want to create a bot that:

  • Can handle an almost infinite amount of joined guilds
  • Is able to scale vertically and horizontally
  • Can play music for free, forever. (Not like that freemium stuff Mee6 does)
  • Will never use more resources than absolutely needed
  • Never crashes (or to be precise: be able to recover from almost any panic())

Achievements

  • Never exceeded 2% CPU usage at the time of writing.
  • Never used more than 8MB of it's allocated heap.

Docs

Hancrafted guide soon (tm)

Until then use GoWalker/GoDoc for coding guides and the homepage for usage help.

Disclaimer

This bot is still in a early stage.
Please expect (rare) crashes and minor performance problems until the bot is mature enough.

How does this work?

I've drawn a colorful picture just for you!