<!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 &lt;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>