{"id":30284884,"url":"https://github.com/snazzah/davey","last_synced_at":"2025-08-16T19:38:29.265Z","repository":{"id":264977564,"uuid":"868660233","full_name":"Snazzah/davey","owner":"Snazzah","description":"Discord DAVE implementation for Node environments","archived":false,"fork":false,"pushed_at":"2025-06-10T21:01:50.000Z","size":338,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-08T22:32:13.846Z","etag":null,"topics":["discord","discord-bot","discord-dave","e2ee","mls","nodejs","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/Snazzah.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":"Snazzah","liberapay":"Snazzah","ko_fi":"Snazzah"}},"created_at":"2024-10-07T00:01:38.000Z","updated_at":"2025-07-17T08:03:07.000Z","dependencies_parsed_at":"2025-03-14T23:23:05.440Z","dependency_job_id":"84a2537e-1127-4153-8bd0-960cb9811072","html_url":"https://github.com/Snazzah/davey","commit_stats":null,"previous_names":["snazzah/davey"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Snazzah/davey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snazzah%2Fdavey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snazzah%2Fdavey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snazzah%2Fdavey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snazzah%2Fdavey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Snazzah","download_url":"https://codeload.github.com/Snazzah/davey/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snazzah%2Fdavey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270763345,"owners_count":24641016,"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","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-bot","discord-dave","e2ee","mls","nodejs","rust"],"created_at":"2025-08-16T19:38:26.181Z","updated_at":"2025-08-16T19:38:29.252Z","avatar_url":"https://github.com/Snazzah.png","language":"Rust","funding_links":["https://github.com/sponsors/Snazzah","https://liberapay.com/Snazzah","https://ko-fi.com/Snazzah"],"categories":[],"sub_categories":[],"readme":"# Davey! [\u003csmall\u003eHow ya doin?\u003c/small\u003e](https://www.youtube.com/watch?v=TBbxlP6NXXs)\n\n[![NPM version](https://img.shields.io/npm/v/@snazzah/davey?maxAge=3600)](https://www.npmjs.com/package/@snazzah/davey) [![install size](https://packagephobia.com/badge?p=@snazzah/davey)](https://packagephobia.com/result?p=@snazzah/davey) [![NPM downloads](https://img.shields.io/npm/dt/@snazzah/davey?maxAge=3600)](https://www.npmjs.com/package/@snazzah/davey) [![discord chat](https://img.shields.io/discord/311027228177727508?logo=discord\u0026logoColor=white\u0026color=5865F2)](https://snaz.in/discord)\n\nA [Discord Audio \u0026 Video End-to-End Encryption (DAVE) Protocol](https://daveprotocol.com/) implementation using [OpenMLS](https://openmls.tech/) built with [NAPI-RS](https://napi.rs/).\n\n\u003e Proper documentation does not exist yet, but you can [read the usage document](https://github.com/Snazzah/davey/blob/master/docs/USAGE.md) and review the [type definitions](https://github.com/Snazzah/davey/blob/master/index.d.ts) for available methods.\n\n```ts\nimport { DAVESession, ProposalsOperationType, MediaType, Codec } from '@snazzah/davey';\n\nconst session = new DAVESession(\n  1, // dave version\n  '158049329150427136', // user id\n  '927310423890473011', // channel id\n);\n\n// Set the external sender of the session from opcode 25\nsession.setExternalSender(externalSenderBuffer);\n\n// Get the key package buffer to send to Discord\nsession.getSerializedKeyPackage();\n\n// Process a proposals\nsession.processProposals(\n  ProposalsOperationType.APPEND, // the type of proposals operation\n  proposalsBuffer, // proposals or proposal refs buffer\n  recognizedUserIds, // an array of user IDs in the session, optional but recommended\n);\n\n// Process a commit\nsession.processCommit(commitBuffer);\n\n// Process a welcome\nsession.processWelcome(welcomeBuffer);\n\n// The current voice privacy code of the session, updated after a commit/welcome\nsession.voicePrivacyCode; // a 30 digit string or an empty string for not started sessions\n\n// Encrypt/decrypt voice packets\nif (session.ready) {\n  // Encrypt packets with a specified media type and codec, use this before transport encryption\n  session.encrypt(MediaType.AUDIO, Codec.OPUS, packet);\n  // Really only opus is supported right now so just use the shorthand method\n  session.encrypt_opus(packet);\n  // Decrypt a packet from a user, use this after transport decryption\n  session.decrypt(userId, MediaType.AUDIO, incomingPacket);\n}\n```\n\n#### References\n\n- [daveprotocol.com](https://daveprotocol.com/)\n- [discord/libdave](https://github.com/discord/libdave)\n- [Discord Dev Docs - Voice - E2EE](https://discord.com/developers/docs/topics/voice-connections#endtoend-encryption-dave-protocol)\n- [NAPI-RS](https://napi.rs/docs/introduction/getting-started)\n- [OpenMLS Book](https://book.openmls.tech/introduction.html)\n- [Voice Model - High Level Summary - DPP](https://dpp.dev/voice-model.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnazzah%2Fdavey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnazzah%2Fdavey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnazzah%2Fdavey/lists"}