A lightweight, native voice implementation for hikari-based Discord bots
Latest: 0.3.0a2
|
Python: 3.10+
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.
- Native Discord voice gateway implementation
- Clean, async-first API
- Strong typing and documentation throughout
- Supplemental voice events for better control and UX
pip install hikari-waveEnsure FFmpeg is installed and available in your system PATH.
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.
- 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)
Full documentation is available at: https://hikari-wave.wildevstudios.net/
hikari-wave follows Semantic Versioning with a clear and practical stability model designed to balance rapid development with reliability.
MAJOR.MINOR.PATCH
- 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.
- 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.
- 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.
- 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.
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
To ensure stability while allowing hikari-wave to evolve, the project follows a structured and transparent deprecation process.
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
When a feature is deprecated:
- Explicit Announcement
- The deprecation is documented in:
- The changelog
- The documentation (API docs)
- A clear migration path is provided when possible
- Runtime Warnings
- Deprecated features may emit a
DeprecationWarning - Warnings are non-fatal and do not break existing code
- 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
- 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
- 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
- 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
Users are encouraged to:
- Monitor release notes and changelogs
- Address deprecation warnings promptly
- Test against pre-releases when relying on newer or evolving features
Bug reports and feature requests are welcome via GitHub Issues. Clear reproduction steps and context are appreciated.
MIT License © 2025 WilDev Studios
