xmtp / libxmtp

LibXMTP is a shared library encapsulating the core functionality of the XMTP messaging protocol, such as cryptography, networking, and language bindings.
MIT License
47 stars 20 forks source link

LibXMTP

https://github.com/xmtp/libxmtp/actions/workflows/test.yml/badge.svg https://github.com/xmtp/libxmtp/actions/workflows/lint.yml/badge.svg Status

LibXMTP is a shared library encapsulating the core functionality of the XMTP messaging protocol, such as cryptography, networking, and language bindings.

Important This software is in alpha status and ready for you to start experimenting with. However, we do not recommend using alpha software in production apps. Expect frequent changes as we add features and iterate based on feedback.

Requirements

Development

Start Docker Desktop.

Quick Start (Dev Containers)

This project supports containerized development. From Visual Studio Code Dev Containers extension specify the Dockerfile as the target:

Reopen in Container

or

Command line build using docker

docker build . -t libxmtp:1

Structure

libxmtp/

bindings_ffi: FFI bindings for Android and iOS (in progress)

bindings_wasm: Wasm bindings (in progress)

├ examples/

│ ├ android/xmtpv3_example: Example Android app (in progress)

│ └ cli: Example XMTP console client. Use the CLI to try out sending double ratchet messages on the XMTP dev network.

xmtp_api_grpc: API client for XMTP's gRPC API, using code from xmtp_proto

xmtp_api_http: API client for XMTP's gRPC Gateway API, using code from xmtp_proto

xmtp_cryptography: Cryptographic operations

xmtp_mls: Version 3 of XMTP which implements Messaging Layer Security.

xmtp_proto: Generated code for handling XMTP protocol buffers

xmtp_v2: Version 2 of XMTP which uses a user key bundle to encrypt and exchange messages.

Run the benchmarks

possible benchmarks include:

Example Commands