Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression. Learn more →
Got Alternatives
Similar projects and alternatives to got
-
cdc-file-transfer
Tools for synching and streaming files from Windows to Linux
-
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
Zenko
Zenko is the open source multi-cloud data controller: own and keep control of your data on any cloud.
-
-
-
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
-
-
-
-
typecrypt
Typescript public key encryption library using webcrypto (designed for social networks)
-
-
-
-
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
got reviews and mentions
-
Show HN: A version control system based on rsync
I've not heard the term "probabilistic tree" and I've having difficulty pulling up references. I suspect it's implemented by subpackage ptree[0]. Do you have resources on what makes probabilistic trees different from hash tables?
[0] https://github.com/gotvc/got/tree/master/pkg/gotkv/ptree
Sure, Git stores data in a trie. Each file is one blob identified by hash, and directories (called trees in Git) are blobs where each line is a directory entry with a name and the hash of a file or another tree. This means that modifying an object /down/a/long/path/like/this.txt has to create copies of all the trees on the way up. The technical term for this is "write amplification", and in Git it is affected by path length among other things.
Got stores paths in a probabilistic tree (GotKV[0]). The number of nodes before you get to data will scale logarithmically with the size of the entire filesystem, not the depth of a specific object.
Then there is the issue of large files. A file in Git is always 1 blob. Syncing a large file is not easy because if you are interrupted and have to restart, you have lost all your progress. You can't verify the hash of a blob until you have the whole thing. Got has a maximum blob size, so you'll only be buffering <2MB at a time before you can verify that the blob is correct. If a transfer is interrupted, the most you'll have to repeat is one blobs worth, plus any tree nodes above that blob.
Compared to rsync, Got uses variable size chunks and a faster content defined chunking algorithm, recently featured here on HN[1]. I haven't thought about if variable vs fixed chunks is better for file transfer, but for version control, the higher chance of convergence is important. It means you have better deduplication.
This is a very similar to one of my projects "Got".
The algorithms it uses are superior to rsync and git in a few ways. It comes short on features, especially for software development compared to Git. The motivation is more for personal file storage.
I notice you're using Go and AGPL licensed, so you could borrow any of Got's libraries without issue. (Got is GPL licensed.) Definitely reach out in a GitHub issue.
-
CDC File Transfer
FastCDC is the same chunking algorithm used in Got.
-
SourceHut terms of service updates, cryptocurrency projects to be removed
Thanks for sharing RocketGit. This is the first time I've heard of it, and yes, it does look like a cool copyleft solution to self-hosted Git.
Another interesting option is Brendan Caroll's got[0], which allows sharing of repositories over INET256[1]. I'm sure there are other P2P approaches to Git, but this one just piqued my interest. Unfortunately it has a naming conflict with OpenBSD's Game of Trees[2].
[0] https://github.com/gotvc/got
-
Show HN: Encrypted Git hosting should be easy
I work on a project which solves a similar use case.
Got also does E2EE encryption, but it can additionally encrypt branch names from remote servers.
-
What Comes After Git
I've been working on a project "Got". Which deals with the LFS problem, mentioned in the post.
Got isn't really trying to do software version control better than Git. It's trying to make general purpose file versioning practical, with a workflow similar to Git's.
-
Show HN: Let's build an end-to-end encrypted data store
In the same space is the key-value store underlying Got: GotKV. https://github.com/gotvc/got/tree/master/pkg/gotkv
It stores encrypted blobs in any content-addressed store, and provides a copy-on-write key-value store API.
- Show HN: Got is like Git, but with an 'o'
-
A note from our sponsor - InfluxDB
www.influxdata.com | 6 Jun 2023
Stats
gotvc/got is an open source project licensed under GNU General Public License v3.0 only which is an OSI approved license.
The primary programming language of got is Go.