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.5.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.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 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
  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.5.0a1.tar.gz (40.0 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.5.0a1-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hikari_wave-0.5.0a1.tar.gz
  • Upload date:
  • Size: 40.0 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.5.0a1.tar.gz
Algorithm Hash digest
SHA256 9d2d8bb9aee2345a46907d599abe2e8d8f1034ff905e84e1e2feb46f54510b9d
MD5 dd150e0844734dabc41c1f53614ea8db
BLAKE2b-256 be22f1ac832c28f79ed860448fb73cfd3592aaaae93ec5b02bcae2b1724da8b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hikari_wave-0.5.0a1-py3-none-any.whl
  • Upload date:
  • Size: 52.4 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.5.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3115e0344a478c3bfdb4b8ab98f08deb21c6a4ef9bfda002d49d2fa13e2f7bb
MD5 ae73f95569f31b9d0a021c2f54a14e7e
BLAKE2b-256 04353e0aa9f77a7f80d27d62c3dfc1ababbf3d7450f680fca0d408e676334e75

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