Code Monkey home page Code Monkey logo

icy_matrix's Introduction

icy_matrix is a Matrix client written in Rust using the iced GUI library. It uses ruma and ruma-client to interact with the Matrix network.

It aims to be lightweight with a good out-of-the-box experience. Currently WIP

Icy Matrix

Current features

  • Plain-text message and file sending
  • Receiving messages and media, can show thumbnails (does not support location messages)
  • Show state changes (kicks / bans, room title changes etc.)
  • Change rooms (the ones you joined to)
  • Room search (powered by fuzzy-matcher using the SkimMatcherV2 implementation)
  • Remembers login

Requirements

  • Current stable Rust and Cargo.
  • Make sure you have a working Vulkan setup.
  • gcc, python3, pkg-config, cmake; openssl, x11, xcb, freetype, fontconfig, expat, glib, gtk3, cairo, pango, atk, gdk_pixbuf libraries and development files.
  • Above list may be incomplete, please find out what you need by looking at compiler errors.

Nix

  • nix develop to get a dev shell. (or nix-shell nix/shell.nix if you don't have flakes enabled)

Building

  • Clone the repo, and switch the working directory to it: git clone https://gitlab.com/yusdacra/icy_matrix.git && cd icy_matrix
  • To build and run the project with debug info / checks use cargo run. Use cargo run --release for an optimized release build.

Nix

  • nix build .#icy_matrix-debug to compile a debug build.
  • nix build .#icy_matrix to compile a release build.
  • If you don't have flakes enabled, nix-build will give you a debug build.

Installing

Nix

  • For flakes: nix profile install gitlab:yusdacra/icy_matrix#icy_matrix

Planned features (not ordered)

  • Multiline message composer
  • Play audio / video and show images in app
  • HTML tag rendering of messages (need widget for iced)
  • Embedding URLs (pictures / video thumbnails)
  • Read markers
  • Settings screen
  • User list for rooms
  • User presence
  • Showing invites, leaving rooms
  • Public room explorer
  • Room settings
  • Moderator actions (kick, ban, delete message etc.)
  • Encryption (via pantalaimon?)
  • Animations for better UX (whenever iced supports this)
  • Custom emotes (depends on HTML rendering of messages)

Not planned features

  • Video / audio calls

icy_matrix's People

Contributors

yusdacra avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.