Polyphony
A multi-instance, Discord/Spacebar API-compatible chat client, written in Rust and Svelte (TypeScript) using Tauri.
Explore the docs »
Report Bug · Request Feature
Table of Contents
About The Project
A mockup of the Polyphony client.
Polyphony will be a multi-instance, Discord/Spacebar API-compatible chat client, written in Rust and Svelte (TypeScript) using Tauri. The three goals of this project are ease-of-use, user experience and performance.
Ideally, you will be able to connect to multiple Spacebar instances at the same time and use the client just like you would expect a regular Discord client to work.
Spacebar? What's that?
Go read about the Spacebar project here! Spacebar describes itself as "a free open source selfhostable discord compatible chat, voice and video platform".
Built With
Getting Started
To set up a local development environment, follow these simple steps. This guide assumes you are using Linux.
Prerequisites
Install the rust toolchain and cargo.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install Node.js v19 and yarn
Arch Linux:
sudo pacman -S nodejs yarn
Debian/Ubuntu:
curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g yarn
Clone this project and install dependencies
git clone https://github.com/polyphony-chat/client.git
cd client
yarn install
You should now be able to run the client with yarn tauri dev
from the project root. You can independently build and run the Rust backend with cargo run
from the src-tauri
directory.
Roadmap
See the open issues for a full list of proposed features (and known issues).
Contributing
Read: Polyphony Design and collaboration guidelines
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
If you want to contribute code, please follow these steps:
- Find a feature or issue you want to work on. If you want to work on something that is not listed, open an issue and we will discuss it.
- Let it be known in the issue that you are working on it. This is to avoid duplicate work, especially since currently this project is still in its early stages and there are not many contributors.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the GPLv3 License. See LICENSE.txt
for more information.
Contact
Project Link: https://github.com/polyphony-chat/client