{"id":26428945,"url":"https://github.com/brokenprogrammer/brokendiscord","last_synced_at":"2025-06-30T22:35:33.378Z","repository":{"id":81706082,"uuid":"143525138","full_name":"brokenprogrammer/BrokenDiscord","owner":"brokenprogrammer","description":"Discord Library written in F#","archived":false,"fork":false,"pushed_at":"2018-09-23T14:32:53.000Z","size":208,"stargazers_count":7,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-14T09:42:19.333Z","etag":null,"topics":["discord","discord-api","fsharp"],"latest_commit_sha":null,"homepage":"","language":"F#","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/brokenprogrammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null}},"created_at":"2018-08-04T12:02:01.000Z","updated_at":"2021-11-16T05:17:51.000Z","dependencies_parsed_at":"2023-06-17T04:00:37.976Z","dependency_job_id":null,"html_url":"https://github.com/brokenprogrammer/BrokenDiscord","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brokenprogrammer/BrokenDiscord","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brokenprogrammer%2FBrokenDiscord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brokenprogrammer%2FBrokenDiscord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brokenprogrammer%2FBrokenDiscord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brokenprogrammer%2FBrokenDiscord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brokenprogrammer","download_url":"https://codeload.github.com/brokenprogrammer/BrokenDiscord/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brokenprogrammer%2FBrokenDiscord/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262862409,"owners_count":23376405,"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":["discord","discord-api","fsharp"],"created_at":"2025-03-18T04:52:39.841Z","updated_at":"2025-06-30T22:35:33.364Z","avatar_url":"https://github.com/brokenprogrammer.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrokenDiscord [![Build Status](https://travis-ci.org/brokenprogrammer/BrokenDiscord.svg?branch=master)](https://travis-ci.org/brokenprogrammer/BrokenDiscord) [![NuGet](https://img.shields.io/nuget/v/BrokenDiscord.svg)](https://www.nuget.org/packages/BrokenDiscord/)\n\nBrokenDiscord is a [Discord](https://discordapp.com) API Library written in [F#](https://fsharp.org/). The main purpose is to provide a functional alternative that is both clean and easy to use. \n\n## Installation\nThe library is available through [NuGet](https://www.nuget.org/packages/BrokenDiscord/).\n\n## Usage\nThe classic ping pong example can be found [here](https://github.com/brokenprogrammer/BrokenDiscord/blob/master/BrokenDiscord.Examples/Ping/Ping.fs). More examples will be added in the future.\n\nFirst you want to import the following modules\n```fsharp\n    open BrokenDiscord.Client\n    open BrokenDiscord.Types\n    open BrokenDiscord.Events\n    open Hopac\n```\n\nYou can then construct a new Discord client which can be used to access both the Discord web API and set callbacks for Discord events.\n```fsharp\nlet client = new Client(\"DISCORD_BOT_TOKEN_HERE\")\n```\n\nIn the main function of the program you can add event handlers to the client and then call the start function to start the client which will then connect to the Discord gateway using a websocket.\n```fsharp\n    // Add functionality for reacting to events here\n    let handleEvents = function\n        | Ready args -\u003e ()\n        | MessageCreate args -\u003e ()\n        | TypingStart args -\u003e ()\n        | _ -\u003e ()\n\n    [\u003cEntryPoint\u003e]\n    let main argv =\n        client.Events |\u003e Event.add handleEvents\n        client.start()\n        Console.ReadLine() |\u003e ignore \n        0\n```\n\n## Contributors\n- [Oskar Mendel](https://github.com/brokenprogrammer) - Creator, maintainer\n- [iseurie](https://github.com/iseurie) - Maintainer\n- [Elliott Brown](https://github.com/EBrown8534) - Structure, bug fixes\n- Michael Garnett - Structure, bug fixes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrokenprogrammer%2Fbrokendiscord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrokenprogrammer%2Fbrokendiscord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrokenprogrammer%2Fbrokendiscord/lists"}