add a cute readme

This commit is contained in:
yuzu 2024-11-04 21:27:04 -05:00
parent ace805f532
commit 7f200352dc

179
README.md
View File

@ -1,9 +1,12 @@
# features
* supports sharding for large bots # Discord.zig
* 100% API coverage, fully typed
* faster than any other Discord library A high-performance bleeding edge Discord library in Zig, featuring full API coverage, sharding support, and fine-tuned parsing
* language-agnostic (may be used with JavaScript) * Sharding Support: Ideal for large bots, enabling distributed load handling.
* parses payloads using either zlib or zstd * 100% API Coverage & Fully Typed: Offers complete access to Discord's API with strict typing for reliable and safe code.
* High Performance: Faster than whichever library you can name (WIP)
* Flexible Payload Parsing: Supports payload parsing through both zlib and zstd.
* Language Agnostic: Primarily in Zig, but also compatible with JavaScript. (PERHAPS?)
```zig ```zig
// Sample code // Sample code
@ -12,11 +15,11 @@ const Discord = @import("discord.zig").Discord;
const Intents = Discord.Intents; const Intents = Discord.Intents;
const std = @import("std"); const std = @import("std");
const token = "Bot MTI5ODgzOTgzMDY3OTEzMDE4OA..."; const token = "Bot MTI5ODgzOTgzMDY3OTEzMDE4OA..."; // Replace with your actual token
fn message_create(message: Discord.Message) void { fn message_create(message: Discord.Message) void {
// do whatever you want // Define your message handling logic here
std.debug.print("captured: {?s}\n", .{message.content}); std.debug.print("Captured message: {?s}\n", .{message.content});
} }
pub fn main() !void { pub fn main() !void {
@ -34,75 +37,97 @@ pub fn main() !void {
const t = try std.Thread.spawn(.{}, Session.readMessage, .{ &handler, null }); const t = try std.Thread.spawn(.{}, Session.readMessage, .{ &handler, null });
defer t.join(); defer t.join();
} }
``` ```
## Installation
```zig
// In your build.zig file
const exe = b.addExecutable(.{
.name = "marin",
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
const dzig = b.dependency("discord.zig", .{});
marin.root_module.addImport("discord.zig", dzig.module("discord.zig"));
```
TIP: make sure you use the latest Zig!
## contributing
Contributions are welcome! Please open an issue or pull request if you'd like to help improve the library.
## event coverage roadmap ## event coverage roadmap
* application_command_permissions_update | ❌ | Event | Support |
* auto_moderation_rule_create | ❌ |----------------------------------------|---------|
* auto_moderation_rule_update | ❌ | application_command_permissions_update | ❌ |
* auto_moderation_rule_delete | ❌ | auto_moderation_rule_create | ❌ |
* auto_moderation_action_execution | ❌ | auto_moderation_rule_update | ❌ |
* channel_create | ❌ | auto_moderation_rule_delete | ❌ |
* channel_update | ❌ | auto_moderation_action_execution | ❌ |
* channel_delete | ❌ | channel_create | ❌ |
* channel_pins_update | ❌ | channel_update | ❌ |
* thread_create | ❌ | channel_delete | ❌ |
* thread_update | ❌ | channel_pins_update | ❌ |
* thread_delete | ❌ | thread_create | ❌ |
* thread_list_sync | ❌ | thread_update | ❌ |
* thread_member_update | ❌ | thread_delete | ❌ |
* thread_members_update | ❌ | thread_list_sync | ❌ |
* guild_audit_log_entry_create | ❌ | thread_member_update | ❌ |
* guild_create | ❌ | thread_members_update | ❌ |
* guild_update | ❌ | guild_audit_log_entry_create | ❌ |
* guild_delete | ❌ | guild_create | ❌ |
* guild_ban_add | ❌ | guild_update | ❌ |
* guild_ban_remove | ❌ | guild_delete | ❌ |
* guild_emojis_update | ❌ | guild_ban_add | ❌ |
* guild_stickers_update | ❌ | guild_ban_remove | ❌ |
* guild_integrations_update | ❌ | guild_emojis_update | ❌ |
* guild_member_add | ❌ | guild_stickers_update | ❌ |
* guild_member_remove | ❌ | guild_integrations_update | ❌ |
* guild_member_update | ❌ | guild_member_add | ❌ |
* guild_members_chunk | ❌ | guild_member_remove | ❌ |
* guild_role_create | ❌ | guild_member_update | ❌ |
* guild_role_update | ❌ | guild_members_chunk | ❌ |
* guild_role_delete | ❌ | guild_role_create | ❌ |
* guild_scheduled_event_create | ❌ | guild_role_update | ❌ |
* guild_scheduled_event_update | ❌ | guild_role_delete | ❌ |
* guild_scheduled_event_delete | ❌ | guild_scheduled_event_create | ❌ |
* guild_scheduled_event_user_add | ❌ | guild_scheduled_event_update | ❌ |
* guild_scheduled_event_user_remove | ❌ | guild_scheduled_event_delete | ❌ |
* integration_create | ❌ | guild_scheduled_event_user_add | ❌ |
* integration_update | ❌ | guild_scheduled_event_user_remove | ❌ |
* integration_delete | ❌ | integration_create | ❌ |
* interaction_create | ❌ | integration_update | ❌ |
* invite_create | ❌ | integration_delete | ❌ |
* invite_delete | ❌ | interaction_create | ❌ |
* message_create: ?*const fn (message: Discord.Message) void | ✅ | invite_create | ❌ |
* message_update: ?*const fn (message: Discord.Message) void = undefined, | invite_delete | ❌ |
* message_delete: ?*const fn (message: Discord.MessageDelete) void = undefined, | message_create: ?*const fn (message: Discord.Message) void | ✅ |
* message_delete_bulk: ?*const fn (message: Discord.MessageDelete) void = undefined, | message_update: ?*const fn (message: Discord.Message) void | ✅ |
* message_reaction_add | ❌ | message_delete: ?*const fn (message: Discord.MessageDelete) void | ✅ |
* message_reaction_remove | ❌ | message_delete_bulk: ?*const fn (message: Discord.MessageDelete) void | ✅ |
* message_reaction_remove_all | ❌ | message_reaction_add | ❌ |
* message_reaction_remove_emoji | ❌ | message_reaction_remove | ❌ |
* presence_update | ❌ | message_reaction_remove_all | ❌ |
* stage_instance_create | ❌ | message_reaction_remove_emoji | ❌ |
* stage_instance_update | ❌ | presence_update | ❌ |
* stage_instance_delete | ❌ | stage_instance_create | ❌ |
* typing_start | ❌ | stage_instance_update | ❌ |
* user_update | ❌ | stage_instance_delete | ❌ |
* voice_channel_effect_send | ❌ | typing_start | ❌ |
* voice_state_update | ❌ | user_update | ❌ |
* voice_server_update | ❌ | voice_channel_effect_send | ❌ |
* webhooks_update | ❌ | voice_state_update | ❌ |
* entitlement_create | ❌ | voice_server_update | ❌ |
* entitlement_update | ❌ | webhooks_update | ❌ |
* entitlement_delete | ❌ | entitlement_create | ❌ |
* message_poll_vote_add | ❌ | entitlement_update | ❌ |
* message_poll_vote_remove | ❌ | entitlement_delete | ❌ |
* ready: ?*const fn (data: Discord.Ready) void | ✅ | message_poll_vote_add | ❌ |
* resumed | ❌ | message_poll_vote_remove | ❌ |
* any: ?*const fn (data: []u8) void | ✅ | ready: ?*const fn (data: Discord.Ready) void | ✅ |
| resumed | ❌ |
| any: ?*const fn (data: []u8) void | ✅ |