Skip to main content

A sane Discord API for Python 3 built on asyncio and good intentions

Project description

hikarivers pyvers codecov prs issues black mypy docs

Discord

hikari

An opinionated, static typed Discord API for Python3 and asyncio.

Built on good intentions and the hope that it will be extendable and reusable, rather than an obstacle for future development.

import hikari

bot = hikari.Bot(token="...")


@bot.listen()
async def ping(event: hikari.MessageCreateEvent) -> None:
    # If a non-bot user sends a message "hk.ping", respond with "Pong!"

    if not event.message.author.is_bot and event.message.content.startswith("hk.ping"):
        await event.message.reply("Pong!")


bot.run()

Events are determined by the type annotation on the event parameter, or alternatively as a type passed to the @bot.listen() decorator, if you do not want to use type hints.

@bot.listen(hikari.MessageCreateEvent)
async def ping(event):
    ...

Installation

Install hikari from PyPI with the following command:

python -m pip install hikari -U --pre
# Windows users may need to run this instead...
py -3 -m pip install hikari -U --pre

Additional libraries

You may wish to use a command framework on top of Hikari so that you can start writing a bot quickly without implementing your own command handler.

Hikari does not include a command framework by default, so you will want to pick a third party library to do it.

  • lightbulb - a simple and easy to use command framework for Hikari.

Developing Hikari

If you wish to contribute something, you should first start by cloning the repository.

The first thing you should run is pip install nox to install nox. This handles running predefined tasks and pipelines.

To initialize a development environment and install everything you need, simply run nox -s init. This will create a venv and install everything you need in it to get started.

Once this is complete, you can run nox without any arguments to ensure everything builds and is correct.

Where can I start?

Check out the issues tab on GitHub. If you are nervous, look for issues marked as good-first-issue-badge for something easy to start with!

good-first-issues

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hikari-2.0.0.dev74.tar.gz (251.5 kB view details)

Uploaded Source

Built Distribution

hikari-2.0.0.dev74-py3-none-any.whl (332.0 kB view details)

Uploaded Python 3

File details

Details for the file hikari-2.0.0.dev74.tar.gz.

File metadata

  • Download URL: hikari-2.0.0.dev74.tar.gz
  • Upload date:
  • Size: 251.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for hikari-2.0.0.dev74.tar.gz
Algorithm Hash digest
SHA256 b6a3fd1b41a93b748d021c0cb05f2b58d26a9b4c469c486da4d937bf5d284c25
MD5 abfd4cd6c5f9e6358e818144bda6b547
BLAKE2b-256 72103ef9a366b624170ddc65675aa0dae41ee560188fc80dfbfb97cb80d5f94b

See more details on using hashes here.

File details

Details for the file hikari-2.0.0.dev74-py3-none-any.whl.

File metadata

  • Download URL: hikari-2.0.0.dev74-py3-none-any.whl
  • Upload date:
  • Size: 332.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for hikari-2.0.0.dev74-py3-none-any.whl
Algorithm Hash digest
SHA256 00560228aa1aaee62978a59578656e777c6e51bc2793006c94b353004fc73e4b
MD5 26acee53c611b223bf76f9af4790f643
BLAKE2b-256 54095bbe657ed2d9bae566c537ae293cabc2db0c4905cb3aee642c7ac86d5282

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page