<!doctype html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link href="/assets/css/index.css" rel="stylesheet" /> <link rel="shortcut icon" href="/assets/img/favicon.ico" sizes="32x32" /> <link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Moxxy Blog" /> <!-- Begin Jekyll SEO tag v2.8.0 --> <title>Developer Information | Moxxy</title> <meta name="generator" content="Jekyll v4.3.1" /> <meta property="og:title" content="Developer Information" /> <meta property="og:locale" content="en_GB" /> <link rel="canonical" href="https://moxxy.org/developers.html" /> <meta property="og:url" content="https://moxxy.org/developers.html" /> <meta property="og:site_name" content="Moxxy" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta property="twitter:title" content="Developer Information" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","headline":"Developer Information","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://moxxy.org/assets/img/logo.png"}},"url":"https://moxxy.org/developers.html"}</script> <!-- End Jekyll SEO tag --> </head> <body> <div class="flex flex-col"> <div class="relative h-16 inset-x-0 inset-y-0 px-4 shadow-md grid place-items-center"> <div class="flex flex-row items-center w-full"> <!-- The Moxxy logo --> <a href="/index.html"> <img src="/assets/img/logo.png" class="w-12 h-12 p-2" /> </a> <a href="/index.html"> <span class="font-bold">Moxxy</span> </a> <!-- Spacer --> <div class="grow"></div> <a href="/posts.html" class="px-2 text-sky-400">Blog</a> <a href="/developers.html" class="px-2 text-sky-400">Developers</a> <a href="https://codeberg.org/moxxy/moxxy" class="px-2 text-sky-400">Source</a> </div> </div> <div class="w-full flex flex-row justify-center"> <div class="w-full lg:w-1/2"> <div class="w-full p-8 flex flex-col"> <div class="w-full pt-4"> <p> Moxxy is fully open source. You can find the source code <a class="text-sky-400" href="https://codeberg.org/moxxy/moxxy">on Codeberg</a>. Additionally, the code is mirrored <a class="text-sky-400" href="https://github.com/PapaTutuWawa/moxxy">on GitHub</a>. </p> <p class="pt-1 pb-4"> Feel free to join the <a class="text-sky-400" href="xmpp:moxxy@muc.moxxy.org?join">general chat</a> or the <a class="text-sky-400" href="xmpp:dev@muc.moxxy.org?join">developer chat</a> with your favourite XMPP client. </p> </div> <h1 class="text-3xl font-bold">Libraries</h1> <p class="pb-4"> Moxxy is built from various smaller libraries that are custom-made for this purpose. Some of them are for general usage, some are specific to the use case of building Moxxy. </p> <table class="table-fixed"> <thead class="bg-gray-100"> <tr> <th class="text-left px-1">Library</th> <th class="text-left px-1">Description</th> <th class="text-left px-1">Moxxy specific</th> </tr> </thead> <tbody class="divide-y divide-blue-200"> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/moxxmpp">moxxmpp</a> </td> <td class="pr-4">XMPP library written in Dart</td> <td class="pr-4">No</td> </tr> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/moxdns">moxdns</a> </td> <td class="pr-4">DNS SRV resolver for Flutter</td> <td class="pr-4">Yes</td> </tr> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/moxlib">moxlib</a> </td> <td class="pr-4">Shared functions for Moxxy-specific projects</td> <td class="pr-4">Yes</td> </tr> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/moxplatform">moxplatform</a> </td> <td class="pr-4">Platform-specific code</td> <td class="pr-4">Yes</td> </tr> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/PapaTutuWawa/omemo_dart">omemo_dart</a> </td> <td class="pr-4">Implementation of the cryptography for OMEMO 0.8.3 with a high-level interface</td> <td class="pr-4">No</td> </tr> </tbody> </table> </div> <div class="w-full p-8 flex flex-col"> <h1 class="text-3xl font-bold">Custom XEPs</h1> <p class="pb-4"> Moxxy currently implements some custom XMPP protocols to provide additional functionality. These are experimental and are intended to be upstreamed at some point. </p> <table class="table-fixed"> <thead class="bg-gray-100"> <tr> <th class="text-left px-1">Name</th> <th class="text-left px-1">Description</th> </tr> </thead> <tbody class="divide-y divide-blue-200"> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-extensible-file-thumbnails.md">Extensible File Thumbnails</a> </td> <td class="pr-4">Provide an extensible way of specifying thumbnails that are neccessarily binary data</td> </tr> <tr> <td class="pr-4"> <a class="text-sky-400" href="https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-file-upload-notification.md">File Upload Notification</a> </td> <td class="pr-4">Allow communicating that an OOB file upload is currently running to improve the consistency of the conversation</td> </tr> </tbody> </table> </div> </div> </div> </div> <footer class="h-8 w-full flex flex-row justify-center"> <span class="text-sm text-center"> Made with <3 by <a class="text-sky-400" href="https://polynom.me" target="_blank" rel="noopener noreferrer">PapaTutuWawa</a> using <a class="text-sky-400" href="https://tailwindcss.com/" target="_blank" rel="noopener noreferrer">TailwindCSS</a>, <a class="text-sky-400" href="https://jekyllrb.com/" target="_blank" rel="noopener noreferrer">Jekyll</a> and <a class="text-sky-400" href="https://heroicons.com/">heroicons</a>. </span> </footer> </body> </html>