StorX VS zfs-autosnap

Compare StorX vs zfs-autosnap and see what are their differences.

StorX

PHP library for flat-file data storage (by aaviator42)

zfs-autosnap

Minimal viable ZFS autosnapshot tool (by rollcat)
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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
StorX zfs-autosnap
5 4
14 37
- -
10.0 4.8
about 2 years ago 6 months ago
PHP Rust
GNU Affero General Public License v3.0 MIT License
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.

StorX

Posts with mentions or reviews of StorX. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-10.
  • PHP in 2024
    3 projects | news.ycombinator.com | 10 Apr 2024
    Apparently it is still common practice to have such "if bla is set, when do blub" everywhere in ones code? No functions with decorators or a similar or alternative concept? I would think there should be some kind of easy to use mechanism in place, that tends to avoid forgetting these ifs.

    There are ... 60 lines of global logic, that is not encapsulated in any function or so?

    Some of the functions are quite long. But I think mostly because they render out HTML.

    At line 107 with the procedure printHeader starting, what I call PHP nightmare starts:

    Switching back and forth between PHP, HTML and HTML with integrated JS (!!!) and CSS. All of course without syntax highlighting, but that is a minor issue. The major issue is treating HTML and JS and CSS as mere strings, instead of structured data, and the very bad readability of having procedures suddenly "end" and spit out some wild HTML, then suddenly continuing again, because some server side logic/decision is required at some place in that stream of unstructured data, whether some part is to be included or not, then the stream continues and then at some point one needs to actually check, that one did not forget to truly end the procedure. This has some of the worst readability. Maybe C code with bit magic is worse.

    One can find this kind of approach in many, if not most, Wordpress plugins. What's more is, that this is also terrible for writing tests. The procedures do not return a value to check against. All is a side effect. Perhaps there is some PHP library that manipulates the PHP system, so that one can at least do string comparisons on the side effects. Like mocking, basically. But still terrible for testing.

    For a comparison of how it should be done instead, check any templating engine, that at least separates template files from PHP code. Better, checkout SXML libraries, that treat HTML as structured data, a tree that can be traversed and pattern matched against, without pulling out arcane string manipulations or regular expressions. And then consider how one could write tests based on such structured data.

    If this "HTML is a string, even on the server side before sending it" kind of approach is how a language treats HTML, then the language is not suitable to be directly used for HTML templating, without any additional library. This alone has caused uncountable security issues in so many projects.

    I realize, that this is probably kind of a "one off script" and may not reflect other kinds of PHP code.

    I did all of those things myself, years ago. And when I already had moved away from such an approach, I had to maintain a project, that was written this way. It had no tests of course. No fun. It has not that much to do with you personally being a good dev or not. I think it has to do with the ecosystem encouraging you to do these things. Outputting HTML like that should be declared illegal and should be impossible.

    https://github.com/aaviator42/StorX/blob/main/StorX.php in comparison looks much better. It seems it does not output things directly. Everything seems wrapped nicely into methods. One obvious footgun seems to be another global state thing, that I really hope is not a thing in PHP itself:

        const THROW_EXCEPTIONS = TRUE;
  • Why you should probably be using SQLite
    8 projects | news.ycombinator.com | 27 Oct 2023
    I'm a huge fan of SQLite! My org's apps use it heavily, often via this simple key-value interface built on sqlite: https://github.com/aaviator42/StorX

    Handles tens of thousands of requests a day very smoothly! :)

  • Show HN: My Single-File Python Script I Used to Replace Splunk in My Startup
    6 projects | news.ycombinator.com | 21 Sep 2023
    My org's apps heavily use this simple key-value interface built on sqlite: https://github.com/aaviator42/StorX

    There's also a bunch of other purpose-built tiny utilities on that GitHub account.

  • SQLite-based databases on the Postgres protocol? Yes we can
    11 projects | news.ycombinator.com | 25 Jan 2023
    I wrote a small PHP library that gives you a key-value storage interface to SQlite files: https://github.com/aaviator42/StorX

    I've been dogfooding for a while by using it in my side projects.

    And there's a basic API too, to use it over a network: https://github.com/aaviator42/StorX-API

  • Soul – A SQLite RESTful Server
    10 projects | news.ycombinator.com | 29 Oct 2022
    This is probably ready to be used in production by others, but I wrote a library that gives you a key-value storage interface to SQlite files: https://github.com/aaviator42/StorX

    And there's an API too, to use it over a network: https://github.com/aaviator42/StorX-API

zfs-autosnap

Posts with mentions or reviews of zfs-autosnap. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-24.
  • Ask HN: Why Free Open Source Software?
    2 projects | news.ycombinator.com | 24 Jan 2024
    I maintain two projects that I use daily for both work and personal stuff, that have attracted a modest, but appreciable amount of contributions. In both cases, the codebases are relatively small (500-1k sloc), and laser-focused on doing exactly one thing well.

    I'm very grateful for every contribution, no matter how small - people have found bugs, fixed real problems, done cleanups. The hardest part is telling someone that a feature/idea does not have a place in this project. I think the general emphasis on minimalism tends to help here - I've never had to deal with any drama.

    In terms of workload, again - the minimalist design and extremely clear goals have helped so much. I got trapped by that once before - I volunteered to build an internal automation tool (that saved someone else from doing like 1h/d of work), but literally couldn't spare 1h/mo to maintain it; the cause of the maintenance burden was an influx of changes in the APIs of the external services it integrated. So now I'm much more careful about volunteering to maintain integrations with external tools; in case of these two projects, the targets are SSH and ZFS - both have extremely stable interfaces.

    In both cases it was absolutely worth it to publish and (very lightly) promote the projects; since these are "devops" tools that theoretically have unlimited potential for causing great harm, having any response at all helped reassure me that the code I'm running against production infrastructure has fewer unknown bugs. https://i.pinimg.com/474x/2f/e0/87/2fe08785e8eb112cada6da789...

    The projects: <https://github.com/rollcat/judo>; <https://github.com/rollcat/zfs-autosnap>.

  • Show HN: My Single-File Python Script I Used to Replace Splunk in My Startup
    6 projects | news.ycombinator.com | 21 Sep 2023
    "This simple tool solves X at my org" is probably the most underrated type of project. There's not enough room to overcomplicate something that isn't a core part of the business, it must be practical to maintain, simple&stupid enough so that onboarding is not a hurdle, etc.

    I encourage everyone to share your "splunk in 1kloc of Python" projects! Some of my own:

    - https://github.com/rollcat/judo is Ansible without Python or YAML

    - https://github.com/rollcat/zfs-autosnap manages rolling ZFS snapshots

  • ZFS for Dummies
    6 projects | news.ycombinator.com | 5 Sep 2023
    A lot of these suggestions are heavily opinionated. Which is not necessarily bad, but they seem to mess with existing conventions just for the sake of it (why {pool}:{dataset}?).

    > Don't make me name [...] snapshots.

    You might like this little tool I wrote: https://github.com/rollcat/zfs-autosnap

    You put "zfs-autosnap snap" in cron hourly (or however often you want a snapshot), and "zfs-autosnap gc" in cron daily, and it takes care of maintaining a rolling history of snapshots, per the retention policy.

    It's not hard writing simple ZFS command wrappers, feel free to take my code and make your own tools.

  • zfs-autosnap: Minimal viable ZFS autosnapshot tool
    1 project | /r/zfs | 21 Sep 2021

What are some alternatives?

When comparing StorX and zfs-autosnap you can also consider the following projects:

StorX-API - A REST API for StorX

configinator

sqld - LibSQL with extended capabilities like HTTP protocol, replication, and more.

litestream - Streaming replication for SQLite.

libsql - libSQL is a fork of SQLite that is both Open Source, and Open Contributions.

judo - Simple orchestration & configuration management

httm - Interactive, file-level Time Machine-like tool for ZFS/btrfs/nilfs2 (and even actual Time Machine backups!)

roapi - Create full-fledged APIs for slowly moving datasets without writing a single line of code.

automatic_log_collector_and_analyzer - Replace Splunk in your small company with this one weird trick!

bottomless

command-limits - Build command lines that respect argument size limits