Monorepo for Tangled tangled.org
752
fork

Configure Feed

Select the types of activity you want to include in your feed.

proposal: git backend rewrite in rust #131

open opened by boltless.me
I'm not talking about the performance.

go-git is quite lacking for our need. It doesn't provide enough API, so we are depending on raw git cli in several places. TBH I think golang ecosystem is not suitable for this job. Besides, rust has quite mature ecosystem around cutting-edge VCSes like jujutsu or sapling. With mature ecosystem, we can try more advanced stuffs like custom syncing protocol tailored for our need or rich commit query api using jj revset language.

While go-git can also be good enough with some tweaks, I think it's clear that rust has better libraries here. Currently Knot is already working pretty well without any major issues, so rust rewrite might seem unnecessary and not that important. But what we would like to do in future can be easily done with rust crates. e.g. postgres based git storage.

Things that can be rewritten in rust:#

  • entire knot implementation
  • knotmirror implementation excluding the knotstream slurper which can be extracted as external relay-like service

Things that won't (maybe never) be rewritten in rust:#

  • appview - we prefer go over rust here
  • spindle - opposite case to knot. go has better ecosystem to manage CI system

This is not fixed idea, it's just a proposal for now and I am looking for thoughts.

sign up or login to add to the discussion
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:xasnlahkri4ewmbuzly2rlc5/sh.tangled.repo.issue/3mi4nc6abpm22