postgresql-replicant
testfixtures
postgresql-replicant | testfixtures | |
---|---|---|
5 | 4 | |
38 | 1,047 | |
- | 1.0% | |
3.2 | 6.3 | |
9 months ago | 10 days ago | |
Haskell | Go | |
BSD 3-clause "New" or "Revised" License | 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.
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)
testfixtures
-
How to mock database calls
I'm the author of https://github.com/go-testfixtures/testfixtures, a library written to make it easier to write tests with a real database and test data. You might want to use it together with docker-compose, for example.
-
Integration tests with Go and testcontainers
To solve the problem we will use testfixtures. Create a folders fixtures и fixtures/storage and put a file users.yaml inside:
-
Mocking database or use a test database
A lot of good suggestions here, I would also take a look at go-testfixtures which allows you to create some simple yaml-based fixture data to use with unit testing. It's quick and easy, but yes can get unwieldy the more you add.
-
Ask HN: What are some tools / libraries you built yourself?
I built an alternative to Make written in Go that is simpler to use and cross-platform: https://taskfile.dev/
Also, a library to write tests with databases for Go: https://github.com/go-testfixtures/testfixtures
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.
go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests
GoJS, a JavaScript Library for HTML Diagrams - JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.
Hamcrest - Hamcrest matchers for the Go programming language
Pion WebRTC - Pure Go implementation of the WebRTC API
ginkgo - A Modern Testing Framework for Go
Tabula - Extract tables from PDF files
GoSpec - Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED]
Zip Foundation - Effortless ZIP Handling in Swift
assert - :exclamation:Basic Assertion Library used along side native go testing, with building blocks for custom assertions
null - reasonable handling of nullable values
dbcleaner - Clean database for testing, inspired by database_cleaner for Ruby