2024-08-11 03:51:22 +02:00
|
|
|
|
# Versia-Go
|
|
|
|
|
|
|
2024-09-02 20:24:55 +02:00
|
|
|
|
Versia-Go is a experimental implementation of the [Versia](https://versia.pub) protocol written in Go.
|
2024-08-11 03:51:22 +02:00
|
|
|
|
|
2024-08-24 17:01:16 +02:00
|
|
|
|
> Compatibility level: Versia Working Draft 4.0
|
2024-08-11 03:51:22 +02:00
|
|
|
|
|
|
|
|
|
|
> ⚠️ This project is still in development and is not ready for production use.
|
2024-08-22 23:05:30 +02:00
|
|
|
|
> In this phase no pull requests will be accepted and code may often break.
|
2024-08-11 03:51:22 +02:00
|
|
|
|
|
|
|
|
|
|
## Developing
|
|
|
|
|
|
|
|
|
|
|
|
### Requirements
|
|
|
|
|
|
|
|
|
|
|
|
- Go 1.22.5+
|
|
|
|
|
|
- Docker + Docker Compose v2
|
|
|
|
|
|
|
|
|
|
|
|
### Running
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
2024-08-28 00:25:25 +02:00
|
|
|
|
git clone https://github.com/versia-pub/versia-go.git
|
2024-08-11 03:51:22 +02:00
|
|
|
|
cd versia-go
|
|
|
|
|
|
|
|
|
|
|
|
docker compose up -d nats
|
|
|
|
|
|
|
|
|
|
|
|
touch .env.local
|
|
|
|
|
|
# Add the changed variables from .env to .env.local
|
|
|
|
|
|
|
|
|
|
|
|
go run .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] Notes
|
|
|
|
|
|
- [ ] API
|
|
|
|
|
|
- [ ] Allow choosing the publishing user
|
|
|
|
|
|
- [x] Federating notes
|
|
|
|
|
|
- [ ] Follows
|
|
|
|
|
|
- [ ] API
|
|
|
|
|
|
- [x] Automatic follows for public users
|
2024-08-27 19:59:12 +02:00
|
|
|
|
- [ ] Unfollows (scheduled for Versia Working Draft 4)
|
2024-08-11 03:51:22 +02:00
|
|
|
|
- [ ] API
|
|
|
|
|
|
- [ ] Users
|
|
|
|
|
|
- [ ] API
|
|
|
|
|
|
- [x] Create user
|
2024-08-27 19:59:12 +02:00
|
|
|
|
- [ ] Versia API
|
2024-08-11 03:51:22 +02:00
|
|
|
|
- [x] Get user (from local)
|
|
|
|
|
|
- [x] Webfinger
|
2024-08-27 19:59:12 +02:00
|
|
|
|
- [ ] User discovery
|
2024-08-11 03:51:22 +02:00
|
|
|
|
- [ ] Inbox handling
|
|
|
|
|
|
- [ ] Federated notes
|
|
|
|
|
|
- [ ] Federated unfollows
|
|
|
|
|
|
- [x] Federated follows
|
|
|
|
|
|
- [x] Receiving federated users
|
|
|
|
|
|
- [ ] Web
|
|
|
|
|
|
- Extensions
|
|
|
|
|
|
- [ ] Emojis
|
|
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|
|
|
Versia-Go is licensed under the GNU Affero General Public License v3.0.
|
|
|
|
|
|
|
|
|
|
|
|
See [LICENSE](LICENSE) for more information.
|
|
|
|
|
|
|
|
|
|
|
|
> ℹ️ This project might get relicensed to a different license in the future.
|