pg_net
yjs
pg_net | yjs | |
---|---|---|
4 | 53 | |
170 | 15,225 | |
5.9% | 2.7% | |
7.2 | 8.6 | |
about 2 months ago | 2 days ago | |
PLpgSQL | JavaScript | |
Apache License 2.0 | MIT |
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.
pg_net
- PostgreSQL Is Enough
-
Supabase Wrappers: A Framework for Building Postgres Foreign Data Wrappers
> speaks a particular API over the network
it's a interesting idea, and one of the things that we were toying with in our pg_net extension (https://github.com/supabase/pg_net). This is a "generic" async network extension, so you can fetch/put/post. It works well for APIs.
I think the generic approach works for some things where the data is less "fixed" - for example, an OpenAI API endpoint.
But for "fixed" data (data warehouses), the wrapper usually needs some custom work for security, protocols, and "push down". I'll be interested to get HN's take on this - they might have some suggestions for us for this framework
-
Show HN: Multiplayer Demo Built with Elixir
> finding the building blocks of modern applications (database, auth, functions, presence, realtime subscriptions), making them easy to use, and then sharing the source code.
Great observation!
> Iβve learned a ton just from cruising around supabase GitHub.
Glad to hear it!
> Can you say which of these new components will be open sourced?
All of these components are open source and licensed under Apache License v2.0.
> There are some other features (e.g. function hooks) that are also closed-source at the moment.
I actually worked on the initial implementation of function hooks. We've actually already open sourced both the client (see: https://github.com/supabase/supabase/tree/88bcef911669595428...) and the pg_net extension it requires (see: https://github.com/supabase/pg_net).
> Is Supabase heading for an βopen coreβ model?
I don't think so. We want to continue to open source our projects under either MIT (client libs) and Apache License v2.0 (server libs).
-
Supabase Edge Functions
> The dream would be to have a great DX experience around using insert/update triggers to call Supabase functions to run background tasks
We have something for this: Function Hooks (soon to be renamed "Async Triggers")[0]. They are still in alpha, but the extension [1] is getting close. It was important to build something which works with PG background workers so that it's non-blocking. We'll make quick progress on this now that we've released Edge Functions.
> sending notifications or updating related rows
Tune in for tomorrow's announcement - it's related.
[0] Function Hooks / Async Triggers: https://supabase.com/blog/2021/07/30/supabase-functions-upda...
[1] https://github.com/supabase/pg_net
yjs
- Show HN: Collaborate on your YC Application with CRDT-powered forms
-
Making CRDTs 98% More Efficient
One idea is just to use fewer random bits in peerIDs. Yjs (https://docs.yjs.dev/) gets away with just 32 random bits. If you compromise and use 64 random bits, then even a very popular doc with 1 million lifetime peerIDs will have a < 10^-7 lifetime probability of collision.
-
An Interactive Intro to CRDTs
I've seen it come up often in collaborative text editors.
Also see: https://github.com/yjs/yjs
-
JSON Schema Store
You are absolutely right that XML is better for document structures.
My current theory is that Yjs [0] is the new JSON+XML. It gives you both JSON and XML types in one nested structure, all with conflict free merging via incremental updates.
Also, you note the issue with XML and overlapping inline markup. Yjs has an answer for that with its text type, you can apply attributes (for styling or anything else) via arbatary ranges. They can overlap.
Obviously I'm being a little hypabolic suggesting it will replace JSON, the beauty of JSON is is simplicity, but for many systems building on Yjs or similar CRDT based serialisation systems is the future.
https://github.com/yjs/yjs/
-
Launch HN: Tiptap (YC S23) β Toolkit for developing collaborative editors
Note: https://github.com/yjs/yjs for collaborative "document edition, and user cursors"; has WebRTC, web socket, matrix.org backend
-
Wormholers, what can CCP and wormholers do to improve J-Space?
CCP needs to revamp proto anyway, due to recent exploits... practically, nothing really prevents 'em from using some sort of CRDT's to make the state of the sig view eventually consistent (yjs lib, if we're speaking frontendian).
-
How to use Yjs with Ruby on Rails?
Yjs framework: Because it is a CRDT implementation which provides collaborative editing and offline-first capability.
-
πππ EweserDB, the user-owned database πππ
No problem. The database CRUD features are just helpers as an abstraction on top of yjs: https://docs.yjs.dev/. Eweser adds schemas in the form of typescript types to make using it simpler, more structured, and interoperability easier.
- Ask HN: What is new in Algorithms / Data Structures these days?
- How does Google docs send the changes done by other users in real-time?
What are some alternatives?
pgsentinel - postgresql extension providing Active session history
automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
pg_hexedit - Open PostgreSQL relation files in a hex editor with tags and annotations
liveblocks - Liveblocks is a platform to ship collaborative features like comments, notifications, text editors in minutes instead of months.
Multicorn - Data Access Library
automerge-rs - Rust implementation of automerge [Moved to: https://github.com/automerge/automerge]
pgsql-http - HTTP client for PostgreSQL, retrieve a web page from inside the database.
crdt-woot - Implementation of collaborative editing algorithm CRDT WOOT.
supabase - The open source Firebase alternative.
milkdown - πΌ Plugin driven WYSIWYG markdown editor framework.
wal2json - JSON output plugin for changeset extraction
MobX - Simple, scalable state management.