Skip to content

Rust implementation on the Commune Server

License

Notifications You must be signed in to change notification settings

avdb13/commune-rs

This branch is 2 commits behind commune-sh/commune-rs:main.

Folders and files

NameName
Last commit message
Last commit date
Mar 26, 2024
Mar 26, 2024
Nov 19, 2023
Feb 14, 2024
Feb 14, 2024
Dec 2, 2023
Feb 23, 2024
Feb 14, 2024
Mar 26, 2024
Feb 4, 2024
Feb 23, 2024
Nov 19, 2023
Feb 23, 2024
Mar 26, 2024
Mar 26, 2024
Jan 20, 2024

Repository files navigation

commune-rs

Commune Server written in Rust

Commune allows you to create free, open and public communities on top of the Matrix protocol. It allows homeservers to expose (a subset of) spaces and rooms to the world wide web, extending them with extra community features, such as discussion boards and threaded comments.

A comprehensive introduction of the concept is offered in the article about Communal Bonfires.

We currenly aim to reimplement commune-server, which is written in Golang. The goal is to prove that Rust is fit for backend programming and offers a variety of exclusive benefits over other languagestab=readme-ov-file that encourage good practices while retaining low-level control over details.

Live instances

Installation

We currently only have an alpha version available that runs as a collection of Docker containers.

  • If you didn't already, install the Rust toolchain through your package manager or rustup.

  • Install Just, releases can be found here.

  • Create a configuration file for Synapse with just gen_synapse_conf, it should be located at docker/synapse.

  • Change the variables found in .env to match your environment.

  • Start running the Docker environment with just backend.

  • Register an admin account and retrieve the access token with just gen_synapse_admin && just get_access_token.

  • Compile and run the binary with cargo r --release.

Short-term roadmap

  • Porting over the base functionality of commune-server
  • Federation between Commune instances
  • SSO login support through OpenID Connect
  • ActivityPub support for interacting with the fediverse
  • Private spaces/boards and Encrypted DMs
  • Simplify self-hosting deployment

Development

Prepare the development environment and run the project locally by following the contributor guide.

License

This project is licensed under the Apache License Version 2.0

About

Rust implementation on the Commune Server

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 95.4%
  • Just 3.6%
  • Other 1.0%