minor changes to README.md

This commit is contained in:
Yuzu 2024-11-09 21:09:02 -05:00
parent ed67067f6b
commit 83f6fd4745

169
README.md
View File

@ -4,40 +4,38 @@ A high-performance bleeding edge Discord library in Zig, featuring full API cove
* Sharding Support: Ideal for large bots, enabling distributed load handling. * 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. * 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) * High Performance: Faster than whichever library you can name (WIP)
* Flexible Payload Parsing: Supports payload parsing through both zlib and zstd. * Flexible Payload Parsing: Supports payload parsing through both zlib and zstd*.
* Language Agnostic: Primarily in Zig, but also compatible with JavaScript. (PERHAPS?) * Language Agnostic: Primarily in Zig, but also compatible with JavaScript. (PERHAPS?)
```zig ```zig
// Sample code const Client = @import("discord.zig").Client;
const Session = @import("discord.zig").Session; const Shard = @import("discord.zig").Shard;
const Discord = @import("discord.zig").Discord; 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..."; // Replace with your actual token fn ready(_: *Shard, payload: Discord.Ready) void {
std.debug.print("logged in as {s}\n", .{payload.user.username});
}
fn message_create(message: Discord.Message) void { fn message_create(_: *Shard, message: Discord.Message) void {
// 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 {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); var tsa = std.heap.ThreadSafeAllocator{ .child_allocator = std.heap.c_allocator };
defer arena.deinit();
const allocator = arena.allocator();
var handler = try Session.init(allocator, .{ var handler = Client.init(tsa.allocator());
.token = token, try handler.start(.{
.token = std.posix.getenv("TOKEN") orelse unreachable,
.intents = Intents.fromRaw(37379), .intents = Intents.fromRaw(37379),
.run = Session.GatewayDispatchEvent{ .message_create = &message_create }, .run = .{ .message_create = &message_create, .ready = &ready },
.log = .yes,
.options = .{},
}); });
errdefer handler.deinit(); errdefer handler.deinit();
const t = try std.Thread.spawn(.{}, Session.readMessage, .{ &handler, null });
defer t.join();
} }
``` ```
## Installation ## Installation
```zig ```zig
@ -58,75 +56,84 @@ TIP: make sure you use the latest Zig!
## contributing ## contributing
Contributions are welcome! Please open an issue or pull request if you'd like to help improve the library. Contributions are welcome! Please open an issue or pull request if you'd like to help improve the library.
## general roadmap
| Task | Status |
|-------------------------------------------------------------|--------|
| stablish good sharding support with buckets | ✅ |
| use the priority queues for handling ratelimits (half done) | ❌ |
| make the library scalable with a gateway proxy | ❌ |
| get a cool logo | ❌ |
| finish the event coverage roadmap | ❌ |
## event coverage roadmap ## event coverage roadmap
| Event | Support | | Event | Support |
|----------------------------------------|---------| |----------------------------------------|---------|
| application_command_permissions_update | ❌ | | application_command_permissions_update | ❌ |
| auto_moderation_rule_create | ❌ | | auto_moderation_rule_create | ❌ |
| auto_moderation_rule_update | ❌ | | auto_moderation_rule_update | ❌ |
| auto_moderation_rule_delete | ❌ | | auto_moderation_rule_delete | ❌ |
| auto_moderation_action_execution | ❌ | | auto_moderation_action_execution | ❌ |
| channel_create | ❌ | | channel_create | ❌ |
| channel_update | ❌ | | channel_update | ❌ |
| channel_delete | ❌ | | channel_delete | ❌ |
| channel_pins_update | ❌ | | channel_pins_update | ❌ |
| thread_create | ❌ | | thread_create | ❌ |
| thread_update | ❌ | | thread_update | ❌ |
| thread_delete | ❌ | | thread_delete | ❌ |
| thread_list_sync | ❌ | | thread_list_sync | ❌ |
| thread_member_update | ❌ | | thread_member_update | ❌ |
| thread_members_update | ❌ | | thread_members_update | ❌ |
| guild_audit_log_entry_create | ❌ | | guild_audit_log_entry_create | ❌ |
| guild_create | ❌ | | guild_create | ❌ |
| guild_update | ❌ | | guild_update | ❌ |
| guild_delete | ❌ | | guild_delete | ❌ |
| guild_ban_add | ❌ | | guild_ban_add | ❌ |
| guild_ban_remove | ❌ | | guild_ban_remove | ❌ |
| guild_emojis_update | ❌ | | guild_emojis_update | ❌ |
| guild_stickers_update | ❌ | | guild_stickers_update | ❌ |
| guild_integrations_update | ❌ | | guild_integrations_update | ❌ |
| guild_member_add | ❌ | | guild_member_add | ❌ |
| guild_member_remove | ❌ | | guild_member_remove | ❌ |
| guild_member_update | ❌ | | guild_member_update | ❌ |
| guild_members_chunk | ❌ | | guild_members_chunk | ❌ |
| guild_role_create | ❌ | | guild_role_create | ❌ |
| guild_role_update | ❌ | | guild_role_update | ❌ |
| guild_role_delete | ❌ | | guild_role_delete | ❌ |
| guild_scheduled_event_create | ❌ | | guild_scheduled_event_create | ❌ |
| guild_scheduled_event_update | ❌ | | guild_scheduled_event_update | ❌ |
| guild_scheduled_event_delete | ❌ | | guild_scheduled_event_delete | ❌ |
| guild_scheduled_event_user_add | ❌ | | guild_scheduled_event_user_add | ❌ |
| guild_scheduled_event_user_remove | ❌ | | guild_scheduled_event_user_remove | ❌ |
| integration_create | ❌ | | integration_create | ❌ |
| integration_update | ❌ | | integration_update | ❌ |
| integration_delete | ❌ | | integration_delete | ❌ |
| interaction_create | ❌ | | interaction_create | ❌ |
| invite_create | ❌ | | invite_create | ❌ |
| invite_delete | ❌ | | invite_delete | ❌ |
| message_create: ?*const fn (message: Discord.Message) void | ✅ | | message_create: ?*const fn (message: Discord.Message) void | ✅ |
| message_update: ?*const fn (message: Discord.Message) void | ✅ | | message_update: ?*const fn (message: Discord.Message) void | ✅ |
| message_delete: ?*const fn (message: Discord.MessageDelete) void | ✅ | | message_delete: ?*const fn (message: Discord.MessageDelete) void | ✅ |
| message_delete_bulk: ?*const fn (message: Discord.MessageDeleteBulk) void | ✅ | | message_delete_bulk: ?*const fn (message: Discord.MessageDeleteBulk) void | ✅ |
| message_reaction_add | ❌ | | message_reaction_add | ❌ |
| message_reaction_remove | ❌ | | message_reaction_remove | ❌ |
| message_reaction_remove_all | ❌ | | message_reaction_remove_all | ❌ |
| message_reaction_remove_emoji | ❌ | | message_reaction_remove_emoji | ❌ |
| presence_update | ❌ | | presence_update | ❌ |
| stage_instance_create | ❌ | | stage_instance_create | ❌ |
| stage_instance_update | ❌ | | stage_instance_update | ❌ |
| stage_instance_delete | ❌ | | stage_instance_delete | ❌ |
| typing_start | ❌ | | typing_start | ❌ |
| user_update | ❌ | | user_update | ❌ |
| voice_channel_effect_send | ❌ | | voice_channel_effect_send | ❌ |
| voice_state_update | ❌ | | voice_state_update | ❌ |
| voice_server_update | ❌ | | voice_server_update | ❌ |
| webhooks_update | ❌ | | webhooks_update | ❌ |
| entitlement_create | ❌ | | entitlement_create | ❌ |
| entitlement_update | ❌ | | entitlement_update | ❌ |
| entitlement_delete | ❌ | | entitlement_delete | ❌ |
| message_poll_vote_add | ❌ | | message_poll_vote_add | ❌ |
| message_poll_vote_remove | ❌ | | message_poll_vote_remove | ❌ |
| ready: ?*const fn (data: Discord.Ready) void | ✅ | | ready: Discord.Ready | ✅ |
| resumed | ❌ | | resumed | ❌ |
| any: ?*const fn (data: []const u8) void | ✅ | | any: []const u8 | ✅ |