From 7f200352dc7b233723e98c919d57f677dcd71e6b Mon Sep 17 00:00:00 2001 From: yuzu Date: Mon, 4 Nov 2024 21:27:04 -0500 Subject: [PATCH] add a cute readme --- README.md | 179 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index 5d50591..490cf12 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,12 @@ -# features -* supports sharding for large bots -* 100% API coverage, fully typed -* faster than any other Discord library -* language-agnostic (may be used with JavaScript) -* parses payloads using either zlib or zstd + +# Discord.zig + +A high-performance bleeding edge Discord library in Zig, featuring full API coverage, sharding support, and fine-tuned parsing +* Sharding Support: Ideal for large bots, enabling distributed load handling. +* 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 // Sample code @@ -12,11 +15,11 @@ const Discord = @import("discord.zig").Discord; const Intents = Discord.Intents; const std = @import("std"); -const token = "Bot MTI5ODgzOTgzMDY3OTEzMDE4OA..."; +const token = "Bot MTI5ODgzOTgzMDY3OTEzMDE4OA..."; // Replace with your actual token fn message_create(message: Discord.Message) void { - // do whatever you want - std.debug.print("captured: {?s}\n", .{message.content}); + // Define your message handling logic here + std.debug.print("Captured message: {?s}\n", .{message.content}); } pub fn main() !void { @@ -34,75 +37,97 @@ pub fn main() !void { const t = try std.Thread.spawn(.{}, Session.readMessage, .{ &handler, null }); 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 -* application_command_permissions_update | ❌ -* auto_moderation_rule_create | ❌ -* auto_moderation_rule_update | ❌ -* auto_moderation_rule_delete | ❌ -* auto_moderation_action_execution | ❌ -* channel_create | ❌ -* channel_update | ❌ -* channel_delete | ❌ -* channel_pins_update | ❌ -* thread_create | ❌ -* thread_update | ❌ -* thread_delete | ❌ -* thread_list_sync | ❌ -* thread_member_update | ❌ -* thread_members_update | ❌ -* guild_audit_log_entry_create | ❌ -* guild_create | ❌ -* guild_update | ❌ -* guild_delete | ❌ -* guild_ban_add | ❌ -* guild_ban_remove | ❌ -* guild_emojis_update | ❌ -* guild_stickers_update | ❌ -* guild_integrations_update | ❌ -* guild_member_add | ❌ -* guild_member_remove | ❌ -* guild_member_update | ❌ -* guild_members_chunk | ❌ -* guild_role_create | ❌ -* guild_role_update | ❌ -* guild_role_delete | ❌ -* guild_scheduled_event_create | ❌ -* guild_scheduled_event_update | ❌ -* guild_scheduled_event_delete | ❌ -* guild_scheduled_event_user_add | ❌ -* guild_scheduled_event_user_remove | ❌ -* integration_create | ❌ -* integration_update | ❌ -* integration_delete | ❌ -* interaction_create | ❌ -* invite_create | ❌ -* invite_delete | ❌ -* message_create: ?*const fn (message: Discord.Message) void | ✅ -* message_update: ?*const fn (message: Discord.Message) void = undefined, -* message_delete: ?*const fn (message: Discord.MessageDelete) void = undefined, -* message_delete_bulk: ?*const fn (message: Discord.MessageDelete) void = undefined, -* message_reaction_add | ❌ -* message_reaction_remove | ❌ -* message_reaction_remove_all | ❌ -* message_reaction_remove_emoji | ❌ -* presence_update | ❌ -* stage_instance_create | ❌ -* stage_instance_update | ❌ -* stage_instance_delete | ❌ -* typing_start | ❌ -* user_update | ❌ -* voice_channel_effect_send | ❌ -* voice_state_update | ❌ -* voice_server_update | ❌ -* webhooks_update | ❌ -* entitlement_create | ❌ -* entitlement_update | ❌ -* entitlement_delete | ❌ -* message_poll_vote_add | ❌ -* message_poll_vote_remove | ❌ -* ready: ?*const fn (data: Discord.Ready) void | ✅ -* resumed | ❌ -* any: ?*const fn (data: []u8) void | ✅ +| Event | Support | +|----------------------------------------|---------| +| application_command_permissions_update | ❌ | +| auto_moderation_rule_create | ❌ | +| auto_moderation_rule_update | ❌ | +| auto_moderation_rule_delete | ❌ | +| auto_moderation_action_execution | ❌ | +| channel_create | ❌ | +| channel_update | ❌ | +| channel_delete | ❌ | +| channel_pins_update | ❌ | +| thread_create | ❌ | +| thread_update | ❌ | +| thread_delete | ❌ | +| thread_list_sync | ❌ | +| thread_member_update | ❌ | +| thread_members_update | ❌ | +| guild_audit_log_entry_create | ❌ | +| guild_create | ❌ | +| guild_update | ❌ | +| guild_delete | ❌ | +| guild_ban_add | ❌ | +| guild_ban_remove | ❌ | +| guild_emojis_update | ❌ | +| guild_stickers_update | ❌ | +| guild_integrations_update | ❌ | +| guild_member_add | ❌ | +| guild_member_remove | ❌ | +| guild_member_update | ❌ | +| guild_members_chunk | ❌ | +| guild_role_create | ❌ | +| guild_role_update | ❌ | +| guild_role_delete | ❌ | +| guild_scheduled_event_create | ❌ | +| guild_scheduled_event_update | ❌ | +| guild_scheduled_event_delete | ❌ | +| guild_scheduled_event_user_add | ❌ | +| guild_scheduled_event_user_remove | ❌ | +| integration_create | ❌ | +| integration_update | ❌ | +| integration_delete | ❌ | +| interaction_create | ❌ | +| invite_create | ❌ | +| invite_delete | ❌ | +| message_create: ?*const fn (message: Discord.Message) void | ✅ | +| message_update: ?*const fn (message: Discord.Message) void | ✅ | +| message_delete: ?*const fn (message: Discord.MessageDelete) void | ✅ | +| message_delete_bulk: ?*const fn (message: Discord.MessageDelete) void | ✅ | +| message_reaction_add | ❌ | +| message_reaction_remove | ❌ | +| message_reaction_remove_all | ❌ | +| message_reaction_remove_emoji | ❌ | +| presence_update | ❌ | +| stage_instance_create | ❌ | +| stage_instance_update | ❌ | +| stage_instance_delete | ❌ | +| typing_start | ❌ | +| user_update | ❌ | +| voice_channel_effect_send | ❌ | +| voice_state_update | ❌ | +| voice_server_update | ❌ | +| webhooks_update | ❌ | +| entitlement_create | ❌ | +| entitlement_update | ❌ | +| entitlement_delete | ❌ | +| message_poll_vote_add | ❌ | +| message_poll_vote_remove | ❌ | +| ready: ?*const fn (data: Discord.Ready) void | ✅ | +| resumed | ❌ | +| any: ?*const fn (data: []u8) void | ✅ |