this repo (will) contain j3, a way to host a git repo with just an s3 bucket with a publically accessible HTML browser. it replaces github for smaller projects with just a few collaborators.
- the `git j3` subcommand will eventually allow creating new repos, management of settings, etc
- remotes are specified in git with a `j3://` prefix so that the `git-remote-j3` binary is invoked
- it should work with any s3 provider, including cloudflare r2, minio, etc
- for read-only access to the public, you should be able to clone from the bucket's public URL via https and the git 'dumb protocol'
- for read write access, any collaborator will need an s3 access key id and secret, as well as the bucket URL. they will also need to install git-remote-static as a binary in their path
- git-remote-static is a git remote helper, which is a special feature of git described in the man page ./git-remote-helpers.txt adjacent to this markdown file. i generally recommend you read this document before ever touching the git remote helper code, since it describes how it should work
- we will implement just the *push and *fetch protocols as described in that document. the helper will use the standard s3 api keys from the standard s3 config file (or environment variables) to push and pull files from the remote repo
- the helper will be written in minimal rust, with the absolute minimum number of dependencies (ideally just the official aws s3 protocol, and tokio) to make it work
- eventually there will be a web-based repo browser contained in a single index.html file at the root of the repo on s3. different pages will be routed with `?foo=bar&blah=baz` so that it can be a 'single page app' within a single file of a bucket; we use `?` and not `#` parameters so that it could eventually be upgraded to a real server one day if desired.