From libolm to vodozemac
From libolm to vodozemac
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
Tags
None
Referenced Files
None
Subscribers
None
- Last Author
- tusooa
- Last Edited
- Aug 10 2024, 2:53 PM