postgresql-replicant
null
postgresql-replicant | null | |
---|---|---|
5 | 5 | |
38 | 1,747 | |
- | - | |
3.2 | 5.6 | |
9 months ago | 3 months ago | |
Haskell | Go | |
BSD 3-clause "New" or "Revised" License | BSD 2-clause "Simplified" 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.
postgresql-replicant
-
PostgREST – Serve a RESTful API from Any Postgres Database
You can use a library like https://github.com/agentultra/postgresql-replicant or similar to hook in a data plane and use PostgREST as a data plane.
Your business logic works on the event stream that comes from the WAL.
-
backend.sql and frontend.js = ♥
I wrote postgresql-replicant [0] in order to do this. It’s not a novel idea. It lets you read the logical replication stream.
On top of this library you can do all sorts of things: replicate data to Kafka or SQS, write a web socket server to publish changes to clients, etc.
[0] https://github.com/agentultra/postgresql-replicant
-
Ask HN: What are some tools / libraries you built yourself?
https://github.com/agentultra/postgresql-replicant — stream delta changes from a PostgreSQL database. Not a novel concept or implementation but this library doesn’t exist in Haskell and that’s a shame because Haskell has lots of great libraries for working with streams.
https://github.com/agent ultra/DataVersion — type-directed data migration library. I needed to migrate some data in a document database that had no schema with years of data in it to a format that had a schema. I leveraged some other stuff to achieve it but this library was a key piece to being confident that the transformations were correct and complete. Migrated the database and backfill it with a Lambda function using this library.
Those are just the most recent ones.
-
Haskell good for general use?
On my stream at https://twitch.tv/agentultra I've been working on a library to stream changes out of a PostgreSQL database. We've had to figure out how to use low-level libpq bindings, concurrency primitives, serializing and deserializing binary messages, etc. You can find the library here: https://github.com/agentultra/postgresql-replicant
-
[Announce] postgresql-replicant-0.1.0.0-candidate: streaming PostgreSQL changes
You can star the repo and report issues at: https://github.com/agentultra/postgresql-replicant -- new contributors are welcome! I'm still working out a contribution guide, it's still super early on the project. I can be found here and on the FP Slack (https://fpchat-invite.herokuapp.com/) and on the FP Zulip (https://funprog.zulipchat.com)
null
-
JSON encoder/decoder supporting omitempty on structs
Use-case: working on PATCH requests, the body may or may not contain nullable values. I am using guregu/null and I can't use a pointer because if the json contains "null" as a value, the pointer will be set to nil in the struct, instead of a value representing the presence of null. In short I can't differentiate the absence of the field in the request from the presence of the field with a null value.
-
Nilable - finally a way to stop using pointers just to get the nil state
https://github.com/guregu/null is an awesome package implementing most SQL scanner Interfaces plus JSON
- Golang backend with lots of raw SQL queries
-
Is there a downside to treating possible null values in DB as pointers in struct?
There’s also this: https://github.com/guregu/null
-
Gonion - Golang Client for querying Tor network data
Unfortunately in Go, switching to *bool makes the api a little more awkward to use since users that need to set true or false have to define a local variable then use a pointer to that. Another option would be something like null, but that adds a dependency to your currently-dependency-free project. If anyone has a better solution to this pattern, I'd love to hear it.
What are some alternatives?
lowdefy - The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.
csvutil - csvutil provides fast and idiomatic mapping between CSV and Go (golang) values.
GoJS, a JavaScript Library for HTML Diagrams - JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.
validator - Simple validation for Rust structs
Pion WebRTC - Pure Go implementation of the WebRTC API
react-leaflet-canvas-overlay - React Leaflet component similar to ImageOverlay and VideoOverlay
Tabula - Extract tables from PDF files
gh-token - Manage installation access tokens for GitHub apps from your terminal 💻
Zip Foundation - Effortless ZIP Handling in Swift
firebase-rules - A type-safe Firebase Real-time Database Security Rules builder. Compose and re-use common rules. Reference constants used throughout the project. Catch any errors and typos. Auto-completion.
tera - A template engine for Rust based on Jinja2/Django
trdsql - CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.