roapi VS differential-dataflow

Compare roapi vs differential-dataflow and see what are their differences.

differential-dataflow

An implementation of differential dataflow using timely dataflow on Rust. (by TimelyDataflow)
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
roapi differential-dataflow
24 14
3,080 2,473
0.8% 0.8%
6.9 8.3
about 1 month ago 5 days ago
Rust Rust
Apache License 2.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.

roapi

Posts with mentions or reviews of roapi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-25.
  • Full-fledged APIs for slowly moving datasets without writing code
    1 project | news.ycombinator.com | 25 Oct 2023
  • Tuql: Automatically create a GraphQL server from a SQLite database
    6 projects | news.ycombinator.com | 25 Apr 2023
    If your use case is read-only I suggest taking a look at roapi[1]. It supports multiple read frontends (GraphQL, SQL, REST) and many backends like SQLite, JSON, google sheets, MySQL, etc.

    [1] https://github.com/roapi/roapi

  • Who is using AXUM in production?
    18 projects | /r/rust | 21 Apr 2023
  • Ask HN: Best way to provide access to large data sets
    2 projects | news.ycombinator.com | 11 Apr 2023
    For smaller datasets then anywhere up to a few mb which isn't so bad reasonable with an API but in theory for historic data it could be up to several gb. I've not seen datasette go that high (IIRC it's a 1000 row return limit by default).

    That's what got me intrigued with Atlassians offering, as data lakes tend to be something internal to a company, not something I've ever seen offered as an interaction point to users.

    I've also tested out roapi [1] which is nice if the data is in some structured format already (Parquet/JSON)

    [1] https://github.com/roapi/roapi

  • "thread 'main' panicked at 'no CA certificates found'", when running application in docker container
    3 projects | /r/rust | 4 Apr 2023
    https://github.com/roapi/roapi/issues/103?
  • Roapi 0.9 release adds support for all cloud storage providers
    1 project | news.ycombinator.com | 29 Jan 2023
  • SQLite-based databases on the Postgres protocol? Yes we can
    11 projects | news.ycombinator.com | 25 Jan 2023
    Very cool and well executed project. Love the sprinkle of Rust in all the other companion projects as well :)

    The ROAPI(https://github.com/roapi/roapi) project I built also happened to support a similar feature set, i.e. to expose sqlite through a variety of remote query interfaces including pg wire protocols, rest apis and graphqls.

  • Using Rust to write a Data Pipeline. Thoughts. Musings.
    5 projects | /r/rust | 14 Jan 2023
  • PostgREST – Serve a RESTful API from Any Postgres Database
    22 projects | news.ycombinator.com | 29 Dec 2022
    > why not just accept SQL and cut out all the unnecessary mapping?

    You might be interested in what we're building: Seafowl, a database designed for running analytical SQL queries straight from the user's browser, with HTTP CDN-friendly caching [0]. It's a second iteration of the Splitgraph DDN [1] which we built on top of PostgreSQL (Seafowl is much faster for this use case, since it's based on Apache DataFusion + Parquet).

    The tradeoff for allowing the client to run any SQL vs a limited API is that PostgREST-style queries have a fairly predictable and low overhead, but aren't as powerful as fully-fledged SQL with aggregations, joins, window functions and CTEs, which have their uses in interactive dashboards to reduce the amount of data that has to be processed on the client.

    There's also ROAPI [2] which is a read-only SQL API that you can deploy in front of a database / other data source (though in case of using databases as a data source, it's only for tables that fit in memory).

    [0] https://seafowl.io/

    [1] https://www.splitgraph.com/connect

    [2] https://github.com/roapi/roapi

  • Command-line data analytics made easy
    6 projects | news.ycombinator.com | 3 Nov 2022
    It could be the NDJSON parser (DF source: [0]) or could be a variety of other factors. Looking at the ROAPI release archive [1], it doesn't ship with the definitive `columnq` binary from your comment, so it could also have something to do with compilation-time flags.

    FWIW, we use the Parquet format with DataFusion and get very good speeds similar to DuckDB [2], e.g. 1.5s to run a more complex aggregation query `SELECT date_trunc('month', tpep_pickup_datetime) AS month, COUNT(*) AS total_trips, SUM(total_amount) FROM tripdata GROUP BY 1 ORDER BY 1 ASC)` on a 55M row subset of NY Taxi trip data.

    [0]: https://github.com/apache/arrow-datafusion/blob/master/dataf...

    [1]: https://github.com/roapi/roapi/releases/tag/roapi-v0.8.0

    [2]: https://observablehq.com/@seafowl/benchmarks

differential-dataflow

Posts with mentions or reviews of differential-dataflow. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-21.
  • We Built a Streaming SQL Engine
    3 projects | news.ycombinator.com | 21 Oct 2023
    Some recent solutions to this problem include Differential Dataflow and Materialize. It would be neat if postgres adopted something similar for live-updating materialized views.

    https://github.com/timelydataflow/differential-dataflow

    https://materialize.com/

  • Hydroflow: Dataflow Runtime in Rust
    5 projects | news.ycombinator.com | 7 Jun 2023
    I'm looking for this but can't find it, how does this project compare to differential dataflow?

    As a sibling commenter mentioned, it's built on timely dataflow (which is lower-level), but that already has differential dataflow[0] built on top of it by the same authors.

    How do they differ?

    [0]: https://github.com/TimelyDataflow/differential-dataflow

  • Using Rust to write a Data Pipeline. Thoughts. Musings.
    5 projects | /r/rust | 14 Jan 2023
  • PlanetScale Boost
    6 projects | news.ycombinator.com | 15 Nov 2022
  • Program Synthesis is Possible (2018)
    3 projects | news.ycombinator.com | 4 Sep 2022
  • Convex vs. Firebase
    7 projects | news.ycombinator.com | 21 Jun 2022
    hi! sujay from convex here. I remember reading about your "reverse query engine" when we were getting started last year and really liking that framing of the broadcast problem here.

    as james mentions, we entirely re-run the javascript function whenever we detect any of its inputs change. incrementality at this layer would be very difficult, since we're dealing with a general purpose programming language. also, since we fully sandbox and determinize these javascript "queries," the majority of the cost is in accessing the database.

    eventually, I'd like to explore "reverse query execution" on the boundary between javascript and the underlying data using an approach like differential dataflow [1]. the materialize folks [2] have made a lot of progress applying it for OLAP and readyset [3] is using similar techniques for OLTP.

    [1] https://github.com/TimelyDataflow/differential-dataflow

    [2] https://materialize.com/

    [3] https://readyset.io/

  • Announcing avalanche 0.1, a React- and Svelte-inspired GUI library
    6 projects | /r/rust | 30 Dec 2021
    differential dataflow which is used to power materialize db
  • Differential Datalog
    7 projects | news.ycombinator.com | 19 Mar 2021
    It's partially inspired by Linq, so the similarity you see is expected.

    It's not really arbitrary structures so much, though you're mostly free in what record type you use in a relation (structs and tagged enums are typical, though).

    The incremental part is that you can feed it changes to the input (additions/retractions of facts) and get changes to the outputs back with low latency (you can alternatively just use it to keep an index up-to-date, where you can quickly look up based on a key (like a materialized view in SQL)).

    This [0] section in the readme of the underlying incremental dataflow framework may help get the concept across, but feel free to follow up if you're still not seeing the incrementality.

    [0]: https://github.com/TimelyDataflow/differential-dataflow#an-e...

  • Dbt and Materialize
    3 projects | news.ycombinator.com | 1 Mar 2021
  • Materialized view questions
    1 project | /r/mit6824clojure | 28 Feb 2021

What are some alternatives?

When comparing roapi and differential-dataflow you can also consider the following projects:

php-parquet - PHP implementation for reading and writing Apache Parquet files/streams. NOTICE: Please migrate to https://github.com/codename-hub/php-parquet.

ballista - Distributed compute platform implemented in Rust, and powered by Apache Arrow.

qframe - Immutable data frame for Go

materialize - The data warehouse for operational workloads.

reflow - A language and runtime for distributed, incremental data processing in the cloud

delta-rs - A native Rust library for Delta Lake, with bindings into Python

differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.

fluvio - Lean and mean distributed stream processing system written in rust and web assembly.

timely-dataflow - A modular implementation of timely dataflow in Rust

datasette - An open source multi-tool for exploring and publishing data

clj-3df - Clojure(Script) client for Declarative Dataflow.