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.3.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")
client = hikariwave.VoiceClient(bot)

bot.run()

Connect to voice when a member joins:

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

Play audio:

@bot.listen(hikariwave.MemberJoinVoiceEvent)
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 (planned)

Documentation

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

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.

Backward Compatibility

  • Until 1.0.0, backward compatibility is best-effort
  • Breaking changes may occur in minor versions, but will:
    • Be clearly documented
    • Never be silent
    • Typically go through pre-releases first

Once 1.0.0 is reached, stricter compatibility guarantees will apply.

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 transparency 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
  1. Grace Period
  • Deprecated features will remain available for at least one full minor release
  • Removal will not occur in the same release they are deprecated

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.3.0a1.tar.gz (31.6 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.3.0a1-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hikari_wave-0.3.0a1.tar.gz
  • Upload date:
  • Size: 31.6 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.3.0a1.tar.gz
Algorithm Hash digest
SHA256 c87ca8f772b3ab2f43cee9369aedc4021e70aa52a7e5862e19b8a1bc64bab498
MD5 c7f83a1c82956b9abc431e07b3263d85
BLAKE2b-256 d8117af02c1d63783311ff6a1be29b9dfbeaf0dde831809b825deeed2d97b6b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hikari_wave-0.3.0a1-py3-none-any.whl
  • Upload date:
  • Size: 37.6 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.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 f327be1f5e69e4514f520f50c66341c94e444ee9c554a1d64419de279bffe11a
MD5 113d1e73e7460762e96c8edb6a86372b
BLAKE2b-256 e1c375e9a9356637968f0b7d7c7f46bb6c0ad669a9d9275ede20bf557442bb35

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