Page MenuHomePhorge

From libolm to vodozemac
Updated 285 Days AgoPublic

Version 1 of 9: You are viewing an older version of this document, as it appeared on Aug 10 2024, 2:53 PM.

This is currently a work-in-progress.

This document aims to provide you an overview of how to port your Matrix application from libolm to vodozemac.

Definitions

We will be using the following definitions in the document:

  • The E2EE library means either libolm or vodozemac.
  • The application means any code that uses the E2EE library, which may be another library.
  • The user means anyone who interacts with the application in any way other than writing code.

Differences

vodozemac-bindings has a C++ public API, as opposed to the C API of libolm. There are a couple of differences in the API:

  • Memory allocations are managed by vodozemac, not by the application.
  • You can no longer pass random data into the E2EE library, as vodozemac embeds the rust's random generator in it. This renders the "test vectors" in the spec effectively useless.
  • You have to have exceptions support in your compiler. This is a limitation of cxx.rs , which is used to generate the bindings. See https://github.com/dtolnay/cxx/issues/1052 for more information. This might change later.

Overview of vodozemac-bindings

Last Author
tusooa
Last Edited
Aug 10 2024, 2:53 PM

Event Timeline

tusooa published a new version of this document.
tusooa edited the content of this document. (Show Details)
tusooa published a new version of this document.