(Extremely) Experimental Versia implementation written in Go
Find a file
2024-09-22 03:58:42 +02:00
.github/workflows chore: rename everything to versia 2024-08-28 01:10:38 +02:00
chart chore: rename everything to versia 2024-08-28 01:10:38 +02:00
ent chore: rename everything to versia 2024-08-28 01:10:38 +02:00
internal refactor: move config into internal package 2024-09-22 03:58:42 +02:00
pkg refactor: workers 2024-09-22 03:55:10 +02:00
scripts feat: Helm chart 2024-08-28 01:10:37 +02:00
web chore: init 2024-08-13 01:18:14 +02:00
.dockerignore refactor!: working WD-4 user discovery 2024-08-22 23:05:37 +02:00
.env refactor(server): rename stuff from Lysand to Versia 2024-08-28 01:10:38 +02:00
.gitignore refactor!: working WD-4 user discovery 2024-08-22 23:05:37 +02:00
compose.yml refactor(server): rename stuff from Lysand to Versia 2024-08-28 01:10:38 +02:00
Dockerfile refactor!: working WD-4 user discovery 2024-08-22 23:05:37 +02:00
entsqlite.go chore: init 2024-08-13 01:18:14 +02:00
fiber_error_handler.go chore(server): rename error in fiber error handler 2024-08-28 01:49:13 +02:00
go.mod fix(utils/content-map): match more mimetypes 2024-08-28 02:04:16 +02:00
go.sum fix(utils/content-map): match more mimetypes 2024-08-28 02:04:16 +02:00
LICENSE chore: init 2024-08-13 01:18:14 +02:00
main.go chore: fill extensions column in instance metadata on initialization 2024-09-22 03:58:42 +02:00
README.md docs: README still says Versia hasn't been renamed 2024-09-02 20:24:55 +02:00
server.go refactor: move config into internal package 2024-09-22 03:58:42 +02:00

Versia-Go

Versia-Go is a experimental implementation of the Versia protocol written in Go.

Compatibility level: Versia Working Draft 4.0

⚠️ This project is still in development and is not ready for production use. In this phase no pull requests will be accepted and code may often break.

Developing

Requirements

  • Go 1.22.5+
  • Docker + Docker Compose v2

Running

git clone https://github.com/versia-pub/versia-go.git
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
    • Federating notes
  • Follows
    • API
    • Automatic follows for public users
    • Unfollows (scheduled for Versia Working Draft 4)
      • API
  • Users
    • API
      • Create user
    • Versia API
      • Get user (from local)
      • Webfinger
        • User discovery
      • Inbox handling
        • Federated notes
        • Federated unfollows
        • Federated follows
    • Receiving federated users
  • Web
  • Extensions
    • Emojis

License

Versia-Go is licensed under the GNU Affero General Public License v3.0.

See LICENSE for more information.

This project might get relicensed to a different license in the future.