# biscuit ## A brand new bleeding edge non bloated Discord library ### Install (for [node18](https://nodejs.org/en/download/)) ```sh-session npm install @oasisjs/biscuit pnpm add @oasisjs/biscuit yarn add @oasisjs/biscuit ``` > or via [cdn](https://nest.land/package/biscuit) The biscuit Discord library is built ontop of Discordeno and webspec APIs, we aim to provide portability. Join our [Discord](https://discord.gg/zmuvzzEFz2) ### Most importantly, biscuit is: * A modular [Discordeno](https://github.com/discordeno/discordeno) fork * A framework to build Discord bots * A bleeding edge API to contact Discord Biscuit is primarly inspired by Discord.js and Discordeno but it does not include a cache layer by default, we believe that you should not make software that does things it is not supposed to do. ### Why biscuit?: * [Minimal](https://en.wikipedia.org/wiki/Unix_philosophy), non feature-rich! * Crossplatform * Consistent * Performant ### Example bot (TS/JS) ```js import { GatewayIntents, Session } from "biscuit"; const token = "your token goes here"; const intents = GatewayIntents.MessageContent | GatewayIntents.Guilds | GatewayIntents.GuildMessages; const session = new Session({ token, intents }); session.on("ready", ({ user }) => { console.log("Logged in as:", user.username); }); session.on("messageCreate", (message) => { if (message.content.startsWith("!ping")) { message.reply({ content: "pong!" }); } }); session.start(); ``` ### Mininal style guide * 4 spaces, no tabs * Semi-colons are mandatory * Run `deno fmt` * Avoid circular dependencies ### Contrib guide * Install Deno extension [here](https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno) * Run `deno check` to make sure the library works * Avoid sharing state between classes ### Compatibility #### bun since bun is unestable I highly recommend running biscuit on node! * We got the library running on EndeavourOS but it spams the ready event multiple times * We got the library running on Arch/Artix Linux but breaks when sending fetch requests * We got the library running on WSL #### node * all DNT shims work properly