Cheeky fork of Fractal
Find a file
Daniel García Moreno 8d5e98f259 api: Use md5 as unique message id instead of i32
We were using an integer for the message id when we were sending a
message. This id was incremented with each message sent.

Reading the matrix server documentation I've discovered that this id
should be unique:

> Clients should generate an ID unique across requests with the same
> access token; it will be used by the server to ensure idempotency of
> requests.

So this was a problem. I think that this is because some messages never
got sent to the server and we don't get any error back.

To fix that now we generate an unique id for each message using the room
id, the message body and the message date, we concatenate that and make
an md5 sum, so this should be unique.

https://matrix.org/docs/spec/client_server/r0.3.0.html#put-matrix-client-r0-rooms-roomid-send-eventtype-txnid

See #201
2018-04-29 21:10:14 +02:00
.gitlab/issue_templates Add Gitlab issue templates 2017-11-11 13:22:00 +01:00
flatpak Update links to the repo to the new World group 2018-03-27 13:48:18 +02:00
fractal-api api: Use md5 as unique message id instead of i32 2018-04-29 21:10:14 +02:00
fractal-gtk remove not needed ammonia dep 2018-04-29 20:06:11 +02:00
screenshots Update screenshot with latest version 2018-03-24 14:41:49 +01:00
scripts New release 0.1.27 2018-04-27 10:09:51 +02:00
.editorconfig
.gitignore Versioning Cargo.lock 2018-03-22 10:38:36 +01:00
.gitlab-ci.yml Fixed GitLab CI issue 2018-04-16 18:47:52 +00:00
Cargo.lock Revert "Don't send markdown in the body when parsed" 2018-04-29 12:16:12 +00:00
Cargo.toml Use custom fork of secret-service that removes AVX2 ASM instructions 2018-03-19 08:09:42 +01:00
fractal.doap Renaming the project to Fractal 2017-11-01 11:30:58 +01:00
LICENSE.txt
logo.png Add project logo 2018-02-12 10:04:41 +01:00
meson.build New release 0.1.27 2018-04-27 10:09:51 +02:00
README.md update macos build instructions 2018-04-27 18:23:56 +01:00
TODO Implemented initial search in room 2017-10-21 10:56:48 +02:00

Fractal

Fractal is a Matrix messaging app for GNOME written in Rust. Its interface is optimized for collaboration in large groups, such as free software projects.

screenshot

Build Instructions

You need Meson and Ninja (as well as Rust and Cargo) to build Fractal.

GNU/Linux

meson . _build --prefix=/usr/local
ninja -C _build
sudo ninja -C _build install

macOS

brew install gtk3+ dbus bash adwaita-icon-theme
# empirically needs 3.22.19 or later of gtk3+
# ...and run configure as:
/usr/local/bin/bash -c "meson . _build --prefix=/usr/local"
make

Supported m.room.message (msgtypes)

msgtypes Recv Send
m.text Done Done
m.emote Done Done
m.notice
m.image Done Done
m.file Done Done
m.location
m.video Done Done
m.audio Done Done

Full reference in: https://matrix.org/docs/spec/client_server/r0.2.0.html#m-room-message-msgtypes

The origin of Fractal

This project is based on ruma-gtk https://github.com/jplatte/ruma-gtk

Instead of using RUMA Client, Fractal calls directly to the matrix.org REST API.

The first version of this project was called guillotine, based on french revolution, in relation with the Riot client name, but it's a negative name so we decide to change for a math one.

The name Fractal was proposed by Regina Bíró.