hocus VS gitfs

Compare hocus vs gitfs and see what are their differences.

hocus

🪄 Spin up ready-to-code, disposable dev environments on your own servers. Self-hosted alternative to Gitpod and Github Codespaces. (by hocus-dev)

gitfs

FUSE filesystem to mount git repos. (by gravypod)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
hocus gitfs
11 3
3,122 15
0.7% -
8.9 1.4
9 months ago about 1 year ago
TypeScript Go
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

hocus

Posts with mentions or reviews of hocus. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-10.

gitfs

Posts with mentions or reviews of gitfs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-17.
  • Ask HN: What are some of the most elegant codebases in your favorite language?
    37 projects | news.ycombinator.com | 17 Jun 2023
    (Opinions are my own)

    At my employer we use a subset of C++ and we use Go. We have a process by which when you write code others have to review it and you need to have a review by someone who is an "expert" [0] in the language [1]. You become an "expert" by being ordained by a shadowy committee who reviews code you submit to the code repository. They look for knowledge of the core language, how this language is used within the company, the external and internal libraries, performance, testing, etc. There are many factors and if you demonstrate all of them you get marked as being this type of "expert."

    Before I joined this company I had written code which was launched into production in the following languages: Java, PHP, C, C++, assembly (arm + x86), Python, JavaScript (browser + node), and a few more. I would consider myself about average in all of these. I did not write any golang.

    After I joined my current job I obtained this "expert" bit for both C++ and Go. It took ~1.5 years to get the C++. It took ~3-5 months for Go.

    You can actually see the first golang code I wrote (this was at home when I was experimenting with the language before convincing some team members we should rewrite some of our infra in go): https://github.com/gravypod/gitfs

    It has all sorts of mistakes but I didn't read any guides. I just used https://cs.opensource.google to search for examples of things that I thought I would need to do (ex: "how do I do a switch statement").

    For C++ I had worked on ~2 projects that used it. My first few PRs were very rough and I had a lot of performance issues that crept into my code. If I didn't already have a lot of C experience I would have also had a bunch of pointer/lifetime stuff the reviewers would have found (I know this from reviewing new team members first lines of C or C++).

    I know that to some C++ represents a literal worst case but most people coming from C++ to Go will think it's amazing because it removes all of the common footguns.

    > Things like awkward error handling

    Yes, it is very clunky and annoying but it's very simple. It's just a normal if statement and doesn't use any special language rules. I think this would still be better if there was dedicated syntax for it (something like throw/try/catch which works the same way but gives it a different syntax) but honestly I don't think it's as bad as it's made out to be. It's basically a "less bad" errno and that worked go-... dece-... ehm fine for many years.

    > dealing with null

    I've never really had to think about this too much. There are some times it is important but I rarely return nullable things without errors and it hasn't bitten me yet. My code is not provably correct but for the things I'm working on I don't need that guarantee. If I did I'd probably switch to Rust or something with better type safety.

    > capitalization for public/private

    Yea, this sucks but it doesn't really get in my way much. I don't like it but it isn't actively hurting my usage.

    > magic functions

    Like `String()`? I don't know if that's the worst think in the world. Python, C++, and Java have things like this.

    > and imports

    It's not been too bad for me. What I think is unfortunate is that the package of something is unconnected to where it is in most go usages which is annoying but it makes things more terse. This does actually hamper my productivity.

    > I don't think it's good or easy to use at all, but people rave about it.

    It's pretty easy to use because all of the libraries I've seen share common interfaces for behavior. This makes things feel a lot more cohesive. fuse-go and billy was very easy to use in gitfs because of this.

    [0] - This is not an expert as in "knows everything" but more like "has been seen to consistently write efficient, simple to understand, idiomatic code." It basically means that when someone else from this subset of SWEs reviews your code they often do not have many comments. Again, I want to stress, this is not expert as in "knows everything" just as in "good enough".

    [1] - https://abseil.io/resources/swe-book/html/ch03.html#what_is_...

  • Sensenmann: Code Deletion at Scale
    3 projects | news.ycombinator.com | 30 Apr 2023
    Did you open source yours? I started something like this here: https://github.com/gravypod/gitfs
  • Show HN: Hocus – self-hosted alternative to GitHub Codespaces using Firecracker
    3 projects | news.ycombinator.com | 3 Apr 2023
    Are you planning on using any fancy tricks to optimize large repos? I have open sourced some code I was playing with for fun here which allows you to mount a git repo as a read only FUSE file system: https://github.com/gravypod/gitfs

    You can really lower IOPS/memory/disk usage with an approach like this.

What are some alternatives?

When comparing hocus and gitfs you can also consider the following projects:

devpod - Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.

swiss-chocolatey-lab - Create disposable dev environment VM's for GitHub repositories

devpod-react-server-comp

devpod-react-server-components - Demo app of React Server Components.

Vagrant - Vagrant is a tool for building and distributing development environments.

overlaybd - Overlaybd: a block based remote image format. The storage backend of containerd/accelerated-container-image.

firecracker - Secure and fast microVMs for serverless computing.

projector-docker - Run JetBrains IDEs remotely with Docker

cli - A CLI to create remote development environments in your cloud provider account in seconds

devbox - Instant, easy, and predictable development environments

virt-manager - Desktop tool for managing virtual machines via libvirt