Skip to main content

A lightweight, native voice implementation for hikari-based Discord bots

Project description

A lightweight, native voice implementation for hikari-based Discord bots

Latest: 0.6.0a1  |  Python: 3.10+

Overview

hikari-wave is a standalone voice module for hikari that provides direct voice gateway communication without requiring external backends like Lavalink.

It is designed to be:

  • Simple to use
  • Fully asynchronous
  • Native to hikari's architecture

No separate software. No complex setup. Just voice.

Features

  • Native Discord voice gateway implementation
  • Clean, async-first API
  • Strong typing and documentation throughout
  • Supplemental voice events for better control and UX

Installation

pip install hikari-wave

Ensure FFmpeg is installed and available in your system PATH.

Quick Start

Create a basic voice client bot:

import hikari

bot = hikari.GatewayBot("TOKEN")
voice = hikariwave.VoiceClient(bot)

bot.run()

Connect to voice when a member joins:

@bot.listen(hikariwave.MemberJoinEvent)
async def on_join(event):
    await voice.connect(event.guild_id, event.channel_id)

Play audio:

@bot.listen(hikariwave.MemberJoinEvent)
async def on_join(event):
    connection = await voice.connect(event.guild_id, event.channel_id)
    source = FileAudioSource("test.mp3")

    await connection.player.play(source)

That's it.

Status

  • Voice connect / disconnect
  • Audio playback
  • Move, reconnect, resume
  • Player utilities (queue, shuffle, next/previous, volume, etc.)
  • Audio Sources:
    • Files
    • URLs
    • In-memory buffers
    • YouTube
  • Discord DAVE

Documentation

Full documentation is available at: https://hikari-wave.wildevstudios.net/

Help and Contact

Feel free to join the hikari Discord server under the #wave channel for assistance.

Versioning & Stability Policy

hikari-wave follows Semantic Versioning with a clear and practical stability model designed to balance rapid development with reliability.

Version Format

MAJOR.MINOR.PATCH

Patch Releases (x.y.z)

  • Bug fixes and internal improvements only
  • No breaking changes
  • Always considered stable
  • No alpha (a) or beta (b) suffixes

Patch releases are safe to upgrade to without code changes.

Minor Releases (x.y.0)

  • Introduce new features, subsystems, or configuration options
  • Existing public APIs generally preserved, but behavior may expand
  • May include short-lived alpha/beta pre-releases before stabilization

Example releases flow: 0.4.0a1 -> 0.4.0b1 -> 0.4.0 -> 0.4.1 Pre-releases exist to gather feedback and catch issues early. Once stabilized, the same version is released as a stable minor.

Pre-Releases (a/b)

  • Used only for new minor versions
  • Intended for developers who want early access to new features
  • Not recommended for production unless you are testing upcoming functionality.

Recommendation

If you want maximum stability:

  • Pin to stable releases
  • Avoid alpha/beta versions

If you want early access to new features:

  • Opt into pre-releases and report issues

Deprecation Policy

To ensure stability while allowing hikari-wave to evolve, the project follows a structured and transparent deprecation process.

What is considered deprecated?

A feature may be deprecated if it:

  • Has a better or more flexible replacement
  • Causes long-term maintenance or performance issues
  • Was part of an experimental or early design
  • Conflicts with newer architectural changes

Deprecation Process

When a feature is deprecated:

  1. Explicit Announcement
  • The deprecation is documented in:
    • The changelog
    • The documentation (API docs)
  • A clear migration path is provided when possible
  1. Runtime Warnings
  • Deprecated features may emit a DeprecationWarning
  • Warnings are non-fatal and do not break existing code

Removal Timeline

  • Pre-1.0.0
    • Breaking removals may occur in minor releases
    • Deprecations will still receive advance notice whenever possible
  • 1.0.0+
    • Deprecated features will not be removed until the next major version
    • Patch releases will never remove deprecated functionality

Backward Compatibility Guarantees

  • Patch releases (x.y.z) will:
    • Never introduce breaking changes
    • Never remove deprecated features
  • Minor releases (x.y.0) may:
    • Introduce deprecations
    • Include pre-releases (a/b) for feedback before stabilization

Experimental Features

  • APIs marked as experimental are exempt from the deprecation process
  • Experimental features may change or be removed without notice
  • Experimental status will always be clearly documented

User Responsibility

Users are encouraged to:

  • Monitor release notes and changelogs
  • Address deprecation warnings promptly
  • Test against pre-releases when relying on newer or evolving features

Contributing

Bug reports and feature requests are welcome via GitHub Issues. Clear reproduction steps and context are appreciated.

License

MIT License © 2025 WilDev Studios

Project details


Download files

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

Source Distribution

hikari_wave-0.6.0a1.tar.gz (44.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hikari_wave-0.6.0a1-py3-none-any.whl (57.8 kB view details)

Uploaded Python 3

File details

Details for the file hikari_wave-0.6.0a1.tar.gz.

File metadata

  • Download URL: hikari_wave-0.6.0a1.tar.gz
  • Upload date:
  • Size: 44.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for hikari_wave-0.6.0a1.tar.gz
Algorithm Hash digest
SHA256 16ae40b78b3fe54a1f48c8ba31fc7a6f927db43d2f6e7f6bbd7436f0d759c531
MD5 d1006d95fad1827e36ec6a46582fe3b2
BLAKE2b-256 8a4ab79ea34d0bf20187fe86cac020a117f563cb504646856ff2aec9dd0337f2

See more details on using hashes here.

File details

Details for the file hikari_wave-0.6.0a1-py3-none-any.whl.

File metadata

  • Download URL: hikari_wave-0.6.0a1-py3-none-any.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for hikari_wave-0.6.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6c2012e33ded2891cc901f7d35cee82f4c8c76284cb2e230b696c9d09e0e0b3
MD5 33e4271ce1b88309f5406e9d2a6fc18f
BLAKE2b-256 0c2838df834702974294c2a578a011d0746510dd3365c1a8c930fdc992514e62

See more details on using hashes here.

Supported by

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