{"id":16620677,"url":"https://github.com/timotejroiko/tiny-discord","last_synced_at":"2025-05-08T00:27:50.814Z","repository":{"id":44686187,"uuid":"397827667","full_name":"timotejroiko/tiny-discord","owner":"timotejroiko","description":"A high performance zero dependency raw library for interacting with the Discord API","archived":false,"fork":false,"pushed_at":"2024-08-25T12:27:21.000Z","size":323,"stargazers_count":57,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-14T01:05:38.326Z","etag":null,"topics":["api","discord","raw","websocket"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timotejroiko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"timotejroiko","patreon":"timotejroiko","custom":"https://paypal.me/timotejroiko"}},"created_at":"2021-08-19T05:30:26.000Z","updated_at":"2024-08-26T11:49:29.000Z","dependencies_parsed_at":"2024-07-24T04:10:16.583Z","dependency_job_id":null,"html_url":"https://github.com/timotejroiko/tiny-discord","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timotejroiko%2Ftiny-discord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timotejroiko%2Ftiny-discord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timotejroiko%2Ftiny-discord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timotejroiko%2Ftiny-discord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timotejroiko","download_url":"https://codeload.github.com/timotejroiko/tiny-discord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231468021,"owners_count":18381174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","discord","raw","websocket"],"created_at":"2024-10-12T02:44:55.534Z","updated_at":"2024-12-27T10:08:13.195Z","avatar_url":"https://github.com/timotejroiko.png","language":"JavaScript","funding_links":["https://github.com/sponsors/timotejroiko","https://patreon.com/timotejroiko","https://paypal.me/timotejroiko"],"categories":[],"sub_categories":[],"readme":"# Tiny Discord\n\nA high performance zero dependency raw library for interacting with the Discord API.\n\nThis project aims to provide a basic platform for building high-efficiency bots and libraries in NodeJS. Its base components are plug and play standalone files fully written with core node.js modules, without a single third-party dependency, and consistently outperform other more established solutions.\n\nTests and contributions are welcome.\n\n## To Do\n\n- [x] Rest Client\n- [x] Interaction Server\n- [x] Shard Websocket\n- [x] Identify Controller\n- [ ] Voice Websocket?\n- [ ] Basic Caching?\n- [x] Basic types\n- [x] Internal Sharder\n- [ ] External Sharder\n- [ ] Ratelimit Manager?\n- [x] Docs\n- [x] Benchmarks\n\nNot everyting in this list is guaranteed to be done. items in questionmarks are ideas and possibilities but not a priority and not necessarily something that will be part of this project.\n\n## Docs\n\n- Base components (standalone classes with zero dependencies)\n  - [RestClient](https://github.com/timotejroiko/tiny-discord/blob/master/docs/RestClient.md) - An http client for interacting with the discord rest API.\n  - [WebsocketShard](https://github.com/timotejroiko/tiny-discord/blob/master/docs/WebsocketShard.md) - A websocket client to receive real-time events from discord.\n  - [InteractionServer](https://github.com/timotejroiko/tiny-discord/blob/master/docs/InteractionServer.md) - A webhook server for receiving Discord interactions.\n- Utility components (higher level classes built on top of one or more base components)\n  - [InternalSharder](https://github.com/timotejroiko/tiny-discord/blob/master/docs/InternalSharder.md) - A utility class to manage multiple websocket shards\n  - [IdentifyController](https://github.com/timotejroiko/tiny-discord/blob/master/docs/IdentifyController.md) - A utility class to manage gateway identifies\n\n## Benchmarks\n\nThe following benchmark shows how many events per second can each library process with a single shard. It demonstrates the performance advantages of using the raw discord data directly as opposed to transforming it into complex classes and structures.\n\n|test/lib|discord.js|eris|detritus|tiny-discord|\n|-|-|-|-|-|\n|guilds json|976|1346|803|2479|\n|guilds json+zlib|949|1403|716|2601|\n|guilds etf|681|705|500|2147|\n|guilds etf+zlib|602|808|514|1943|\n|messages json|29482|31759|8081|56917|\n|messages json zlib|25986|22898|5271|39353|\n|messages etf|17684|18003|7505|30621|\n|messages etf zlib|15562|14559|4005|26631|\n\nFull benchmark can be found here: [https://github.com/timotejroiko/discord-websocket-benchmark](https://github.com/timotejroiko/discord-websocket-benchmark)\n\n## Sponsors\n\n\u003cp align=\"center\"\u003eSpecial thanks to our sponsors!\u003c/p\u003e\n\n## LICENSE\n\nThis project is licensed under MIT, which basically means you can do anything you want with it, i only ask that you include a small copyright notice and a link to this repo in a comment in your source code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimotejroiko%2Ftiny-discord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimotejroiko%2Ftiny-discord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimotejroiko%2Ftiny-discord/lists"}