]>
This is a library implementing parts of the Matrix Client-Server API. It is written in C and supports sending and receiving of messages, including end-to-end encryption. Device verification is also supported.
Building requires a C/C++ compiler and make.
To build the dependencies run make deps.
To build any of the examples run make out/examples/<example>.
To use the library:
src/matrix.c to compilationsrc/matrix_http_mongoose.c or src/matrix_http_esp32.c to compilationout/*.o to compilationsrc/ext/olm/include/ext/mjson/src/ext/mongoose/``` MatrixMegolmOutSession * megolmOutSession; MatrixClientNewMegolmOutSession(&client, ROOM_ID, &megolmOutSession); printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);
MatrixClientShareMegolmOutSession(&client, USER_ID, "ULZZOKJBYN", megolmOutSession);
MatrixClientSendEventEncrypted(&client, ROOM_ID, "m.room.message", "{"body":"Hello","msgtype":"m.text"}"); ```
``` // Request an encrypted event to enable verification STATIC char eventBuffer[1024]; MatrixClientGetRoomEvent(client, ROOM_ID, EVENT_ID, eventBuffer, 1024);
#define SYNC_BUFFER_SIZE 1024*10 STATIC char syncBuffer[SYNC_BUFFER_SIZE]; STATIC char nextBatch[1024];
while (! client->verified) { MatrixClientSync(client, syncBuffer, SYNC_BUFFER_SIZE, nextBatch, 1024); } ```