Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

hikarivers pyvers codecov prs issues black mypy docs

Discord

hikari

An opinionated, static typed Discord microframework 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 resources

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.

Making your application more efficient

As your application scales, you may need to adjust some things to keep it performing nicely.

Python optimisation flags

CPython and Stackless Python provide two optimisation flags that remove internal safety checks that are useful for development, and change other internal settings in the interpreter.

  • python bot.py - no optimisation - this is the default.
  • python -O bot.py - first level optimisation - features such as internal assertions will be disabled.
  • python -OO bot.py - second level optimisation - more features (including all docstrings) will be removed from the loaded code at runtime.

hikari[speedups]

If you have a C compiler (Microsoft VC++ Redis 14.0 or newer, or a modern copy of GCC/G++, Clang, etc), you can install hikari using pip install -U hikari[speedups]. This will install aiodns, cchardet, and ciso8601, which will provide you with a small performance boost.

uvloop

If you use Linux, you will get additional performance benefits from using a library called uvloop. This replaces the default asyncio event loop with one that uses libuv internally. You can run pip install uvloop and then amend your script to be something similar to the following example to utilise it in your application:

import os
import hikari

if os.name != "nt":
    import uvloop
    uvloop.install()

bot = hikari.Bot(...)
...

Compiled extensions

Eventually, we will start providing the option to use compiled components of this library over pure Python ones if it suits your use case. This should also enable further scalability of your application, should PEP 554 -- Multiple Interpreters in the Stdlib be accepted.

Currently, this functionality does not yet exist.


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

Metadata

Release files for hikari 2.0.0.dev76

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hikari 2.0.0.dev76
File Size Uploaded
hikari-2.0.0.dev76.tar.gz 264.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hikari 2.0.0.dev76
File Interpreter ABI Platform
hikari-2.0.0.dev76-py3-none-any.whl Python 3 none any Details

Total release size: 611.2 kB

Release files / hikari-2.0.0.dev76.tar.gz

Download URL hikari-2.0.0.dev76.tar.gz
Size 264.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5a95e66c1c2e5d2719e534170445ea399af8ad66732efe22e0b1105b84e2e0fc
BLAKE2b-256 checksum
How to use checksums
2ae6e1d55e638e3645536248fc2a507a0ceb26e81305e3d52e46e85aa6bdf457
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / hikari-2.0.0.dev76-py3-none-any.whl

Download URL hikari-2.0.0.dev76-py3-none-any.whl
Size 346.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de7852a2d19644073b3e82368bf182055d332233e3726054d75d50dfd57eea89
BLAKE2b-256 checksum
How to use checksums
738e23a98e991862a0684beeb238602408499a73a2843090925a1dddbfad2272
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

2.6.0

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

This release

2.0.0.dev76 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page