differential-dataflow
liveviews
differential-dataflow | liveviews | |
---|---|---|
14 | 19 | |
2,473 | 423 | |
0.8% | 2.1% | |
8.3 | 6.2 | |
7 days ago | 2 months ago | |
Rust | ||
MIT License | - |
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.
differential-dataflow
-
We Built a Streaming SQL Engine
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
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.
- PlanetScale Boost
- Program Synthesis is Possible (2018)
-
Convex vs. Firebase
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
differential dataflow which is used to power materialize db
-
Differential Datalog
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
- Materialized view questions
liveviews
-
Why Elixir Is the Best Language for Building a Bootstrapped, B2B SaaS in 2024
If you want to try the liveview approach but not ready to work with Elixir / Erlang / Beam runtime, you can use liveview in 17 popular languages (Java / C# / Javascript / Typescript / PHP / Python, e.t.c.).
https://github.com/liveviews/liveviews
Below are introduction directly quoted from this list:
> This is a list of libraries for creating web applications that handle user interaction with the DOM on the server. These libraries take a different approach from older server-driven browser UIs that simulated a desktop GUI toolkit. They do not lock the developer into working with predefined components; most operate at the level of HTML (DOM) rather than GUI widgets.
> The list strives to be complete rather than awesome. You may see libraries that are not maintained or ready for production.
-
Write code for the web - Apple doesn't care about you, Mr. Developer
This approach allows you to handle business logics on the server, and update the screen in browser from the server as well.
[1] https://github.com/liveviews/liveviews
-
Htmx Webring
That's a conflation. I'm certain for at least some, the choice is more about using a single language than avoiding JS. I'm sure there are people using htmx who use a JS backend. There are at least 5 LiveView clones for JS for instance: https://github.com/liveviews/liveviews#javascripttypescript
-
Is "full-stack web developer" a vanishing career path?
Nuxt, Next, SvelteKit, Phoenix(Elixr), Blazor, and various liveview-likes are popular full stack frameworks. So, although many devs are becoming specialized, there certainly still are full stack developers with demand enough to strongly support several frameworks.
- Phoenix LiveView workalikes for different languages and frameworks
-
Dynamic Forms with LiveView Streams
The list is seeking a maintainer. https://github.com/liveviews/liveviews/issues/23
-
Phoenix 1.7.0 Released: Built-In Tailwind, Verified Routes, LiveView Streams
> "different" platform with it's own unique patterns and quirks
Everything OP listed was a criticism directed at LiveView, the 'Live App' functionality, not Phoenix, the web framework. Live Apps are not exclusive to Phoenix either, as there are now imitators for every other web framework now, which at least speaks to its broader appeal amongst developers. So the criticism could be leveled towards the far less mature 'Live App' libraries on PHP/Python/JS/C# and so on and on:
https://github.com/liveviews/liveviews
-
Grab flask form/wtform data without hitting submit
However there are two ways you can do this server side: 1. Use a tool similar to live view: https://github.com/dbohdan/liveviews
- Phoenix LiveView reimplementations for other languages
- Ask HN: What's is your go to toolset for simple front end development?
What are some alternatives?
ballista - Distributed compute platform implemented in Rust, and powered by Apache Arrow.
python-live-gui
materialize - The data warehouse for operational workloads.
viewi - Unique and efficient front-end framework for PHP
reflow - A language and runtime for distributed, incremental data processing in the cloud
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
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.
examples - Flet sample applications
timely-dataflow - A modular implementation of timely dataflow in Rust
pyimgui - Cython-based Python bindings for dear imgui
clj-3df - Clojure(Script) client for Declarative Dataflow.
Plausible Analytics - Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.