https://github.com/riverqueue/river
background-jobs go golang postgres postgresql queue
Score: 11.84199896978176
Last synced: about 6 hours ago
JSON representation
Repository metadata:
Fast and reliable background jobs in Go
- Host: GitHub
- URL: https://github.com/riverqueue/river
- Owner: riverqueue
- License: mpl-2.0
- Created: 2023-11-08T17:43:41.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2026-01-27T07:39:14.000Z (8 days ago)
- Last Synced: 2026-01-27T14:08:46.352Z (8 days ago)
- Topics: background-jobs, go, golang, postgres, postgresql, queue
- Language: Go
- Homepage: https://riverqueue.com
- Size: 3.47 MB
- Stars: 4,754
- Watchers: 21
- Forks: 134
- Open Issues: 38
-
Metadata Files:
- Readme: docs/README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Owner metadata:
- Name: riverqueue
- Login: riverqueue
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/136755925?v=4
- Repositories: 1
- Last Synced at: 2023-11-08T17:30:21.616Z
- Profile URL: https://github.com/riverqueue
Committers metadata
Last synced: 7 days ago
Total Commits: 685
Total Committers: 29
Avg Commits per committer: 23.621
Development Distribution Score (DDS): 0.401
Commits in past year: 259
Committers in past year: 10
Avg Commits per committer in past year: 25.9
Development Distribution Score (DDS) in past year: 0.386
| Name | Commits | |
|---|---|---|
| Brandur Leach | b****r@b****g | 410 |
| Blake Gentry | b****y | 189 |
| dependabot[bot] | 4****] | 57 |
| Martin Englund | p****e@r****m | 3 |
| a | a****@t****n | 2 |
| Adam Gordon | 3****o | 1 |
| Andrew Benton | a****n@g****m | 1 |
| Andrew Haines | a****w@h****z | 1 |
| Benjamin Egelund-Müller | b****@e****m | 1 |
| Bradley Kemp | b****p | 1 |
| Christian Gregg | c****n@b****o | 1 |
| Danny Hermes | d****s@g****m | 1 |
| Ferenc Fabian | q****a@g****m | 1 |
| Hubert Krauze | k****t@g****m | 1 |
| Hynek Schlawack | h****s@o****x | 1 |
| Kamil Zielinski | 4****a | 1 |
| Martin Tournoij | m****n@a****t | 1 |
| Matthew Magaldi | m****a | 1 |
| Mohamed Sohail | s****a@g****m | 1 |
| Nathan Baulch | n****h@g****m | 1 |
| SanYe | k****i | 1 |
| Stefan Saasen | s****n@o****m | 1 |
| Stefan VanBuren | s****n@v****z | 1 |
| Thibault | 5****7 | 1 |
| Tim Millard | t****d@g****m | 1 |
| Umedzhon Abdumuminov | o****g@g****m | 1 |
| Zhiming Wang | i****@z****g | 1 |
| ne275 | t****5@h****m | 1 |
| yaw | y****e | 1 |
Issue and Pull Request metadata
Last synced: 14 days ago
Total issues: 237
Total pull requests: 864
Average time to close issues: 19 days
Average time to close pull requests: 3 days
Total issue authors: 132
Total pull request authors: 38
Average comments per issue: 2.03
Average comments per pull request: 0.94
Merged pull request: 715
Bot issues: 0
Bot pull requests: 64
Past year issues: 57
Past year pull requests: 346
Past year average time to close issues: 22 days
Past year average time to close pull requests: 2 days
Past year issue authors: 41
Past year pull request authors: 13
Past year average comments per issue: 1.39
Past year average comments per pull request: 0.76
Past year merged pull request: 280
Past year bot issues: 0
Past year bot pull requests: 32
Top Issue Authors
- bgentry (22)
- brandur (13)
- elee1766 (8)
- krhubert (8)
- dhermes (6)
- vsoch (6)
- hypnoglow (5)
- nexovec (5)
- advdv (5)
- dbhoot (4)
- rgalanakis (4)
- sheldondz (3)
- PumpkinSeed (3)
- arp242 (3)
- TC5027 (3)
Top Pull Request Authors
- brandur (473)
- bgentry (271)
- dependabot[bot] (64)
- PumpkinSeed (3)
- kamikazechaser (3)
- nickgala (2)
- arp242 (2)
- NathanBaulch (2)
- hynek (2)
- TC5027 (2)
- thatjos (2)
- begelundmuller (2)
- gaffneyc (2)
- magaldima (2)
- semanser (2)
Top Issue Labels
- bug (20)
- enhancement (10)
- wontfix (6)
- documentation (4)
- needs db migration (2)
- breaking change (1)
Top Pull Request Labels
- dependencies (64)
- go (24)
- bug (6)
- enhancement (4)
- breaking change (4)
- documentation (2)
- needs db migration (1)
Package metadata
- Total packages: 10
- Total downloads: unknown
- Total dependent packages: 1 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 438
proxy.golang.org: github.com/riverqueue/river/riverdriver/riverdrivertest
Example_libSQL demonstrates use of River's SQLite driver with libSQL (a SQLite fork). Example_sqlite demonstrates use of River's SQLite driver.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/riverdriver/riverdrivertest#section-documentation
- Licenses: MPL-2.0
- Latest release: (published 9 days ago)
- Last Synced: 2026-01-27T03:23:19.136Z (9 days ago)
- Versions: 0
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 1.186%
- Forks count: 2.788%
- Average: 3.641%
- Dependent packages count: 5.124%
- Dependent repos count: 5.468%
proxy.golang.org: github.com/riverqueue/river/riverdriver/riversqlite
Package riversqlite provides a River driver implementation for SQLite. It's also tested against libSQL (a SQLite fork), and that should continue to work as long they keep to their commitment in maintaining API compatibility. This driver is currently in early testing. It's exercised reasonably thoroughly in the test suite, but has minimal real world use as of yet. River makes extensive use of internal operations that might run in parallel, which doesn't naturally play well with SQLite, which only allows one operation at a time, returning errors like "database is locked (5) (SQLITE_BUSY)" in case another tries to access it. A good workaround to avoid errors is to set the maximum pool size to one connection like `dbPool.SetMaxOpenConns(1)`. A known deficiency in this driver compared to Postgres is that due to limitations in sqlc, it performs operations like completion and `InsertMany` one row at a time instead of in batches. This means that it's slower than the Postgres driver, especially when benchmarking.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/riverdriver/riversqlite#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:30.404Z (17 days ago)
- Versions: 11
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.432%
- Average: 5.615%
- Dependent repos count: 5.797%
proxy.golang.org: github.com/riverqueue/river/rivershared
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/rivershared#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.1 (published 16 days ago)
- Last Synced: 2026-01-27T03:24:07.054Z (9 days ago)
- Versions: 39
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.422%
- Average: 6.639%
- Dependent repos count: 6.856%
proxy.golang.org: github.com/riverqueue/river/rivertype
Package rivertype stores some of the lowest level River primitives so they can be shared amongst a number of packages including the top-level river package, database drivers, and internal utilities.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/rivertype#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:22.756Z (17 days ago)
- Versions: 52
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 8.625%
- Average: 9.176%
- Dependent repos count: 9.726%
proxy.golang.org: github.com/riverqueue/river/riverdriver/riverpgxv5
Package riverpgxv5 provides a River driver implementation for Pgx v5. This is currently the only supported driver for River and will therefore be used by all projects using River, but the code is organized this way so that other database packages can be supported in future River versions.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/riverdriver/riverpgxv5#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.13.0 (published over 1 year ago)
- Last Synced: 2024-10-29T17:09:37.891Z (over 1 year ago)
- Versions: 66
- Dependent Packages: 1
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.472%
- Average: 10.11%
- Dependent repos count: 10.747%
proxy.golang.org: github.com/riverqueue/river-licensetest
Package river is a robust high-performance job processing system for Go and Postgres. See homepage, docs, and godoc, as well as the River UI. Being built for Postgres, River encourages the use of the same database for application data and job queue. By enqueueing jobs transactionally along with other database changes, whole classes of distributed systems problems are avoided. Jobs are guaranteed to be enqueued if their transaction commits, are removed if their transaction rolls back, and aren't visible for work _until_ commit. See transactional enqueueing for more background on this philosophy. Jobs are defined in struct pairs, with an implementation of `JobArgs` and one of `Worker`. Job args contain `json` annotations and define how jobs are serialized to and from the database, along with a "kind", a stable string that uniquely identifies the job. Workers expose a `Work` function that dictates how jobs run. Jobs are uniquely identified by their "kind" string. Workers are registered on start up so that River knows how to assign jobs to workers: A River `Client` provides an interface for job insertion and manages job processing and maintenance services. A client's created with a database pool, driver, and config struct containing a `Workers` bundle and other settings. Here's a client `Client` working one queue (`"default"`) with up to 100 worker goroutines at a time: ## Insert-only clients It's often desirable to have a client that'll be used for inserting jobs, but not working them. This is possible by omitting the `Queues` configuration, and skipping the call to `Start`: `Workers` can also be omitted, but it's better to include it so River can check that inserted job kinds have a worker that can run them. ## Stopping The client should also be stopped on program shutdown: There are some complexities around ensuring clients stop cleanly, but also in a timely manner. See graceful shutdown for more details on River's stop modes. `Client.InsertTx` is used in conjunction with an instance of job args to insert a job to work on a transaction: See the `InsertAndWork` example for complete code. Batch job insertion for efficiently inserting many jobs at once using Postgres `COPY FROM`. Cancelling jobs from inside a work function. Error and panic handling. Multiple queues to better guarantee job throughput, worker availability, and isolation between components. Periodic and cron jobs. Scheduled jobs that run automatically at their scheduled time in the future. Snoozing jobs from inside a work function. Subscriptions to queue activity and statistics, providing easy hooks for telemetry like logging and metrics. Test helpers to verify that jobs are inserted as expected. Transactional job completion to guarantee job completion commits with other changes in a transaction. Unique jobs by args, period, queue, and state. Web UI for inspecting and interacting with jobs and queues. Work functions for simplified worker implementation. ## Cross language enqueueing River supports inserting jobs in some non-Go languages which are then worked by Go implementations. This may be desirable in performance sensitive cases so that jobs can take advantage of Go's fast runtime. See developing River. Example_batchInsert demonstrates how many jobs can be inserted for work as part of a single operation. Example_completeJobWithinTx demonstrates how to transactionally complete a job alongside other database changes being made. Example_cronJob demonstrates how to create a cron job with a more complex schedule using a third party cron package to parse more elaborate crontab syntax. Example_customInsertOpts demonstrates the use of a job with custom job-specific insertion options. Example_errorHandler demonstrates how to use the ErrorHandler interface for custom application telemetry. Example_globalHooks demonstrates the use of hooks to modify River behavior which are global to a River client. Example_globalMiddleware demonstrates the use of middleware to modify River behavior which are global to a River client. Example_gracefulShutdown demonstrates a realistic-looking stop loop for River. It listens for SIGINT/SIGTERM (like might be received by a Ctrl+C locally or on a platform like Heroku to stop a process) and when received, tries a soft stop that waits for work to finish. If it doesn't finish in time, a second SIGINT/SIGTERM will initiate a hard stop that cancels all jobs using context cancellation. A third will give up on the stop procedure and exit uncleanly. Example_insertAndWork demonstrates how to register job workers, start a client, and insert a job on it to be worked. Example_jobArgsHooks demonstrates the use of hooks to modify River behavior. Example_jobCancel demonstrates how to permanently cancel a job from within Work using JobCancel. Example_jobCancelFromClient demonstrates how to permanently cancel a job from any Client using JobCancel. Example_jobSnooze demonstrates how to snooze a job from within Work using JobSnooze. The job will be run again after 5 minutes and the snooze attempt will decrement the job's attempt count, ensuring that one can snooze as many times as desired without being impacted by the max attempts. Example_periodicJob demonstrates the use of a periodic job. Example_queuePause demonstrates how to pause queues to prevent them from working new jobs, and later resume them. Example_scheduledJob demonstrates how to schedule a job to be worked in the future. Example_subscription demonstrates the use of client subscriptions to receive events containing information about worked jobs. Example_uniqueJob demonstrates the use of a job with custom job-specific insertion options. Example_workFunc demonstrates the use of river.WorkFunc, which can be used to easily add a worker with only a function instead of having to implement a full worker struct.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river-licensetest#section-documentation
- Licenses: MPL-2.0
- Latest release: (published 20 days ago)
- Last Synced: 2026-01-16T00:49:58.558Z (20 days ago)
- Versions: 0
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.472%
- Average: 10.11%
- Dependent repos count: 10.747%
proxy.golang.org: github.com/riverqueue/river/cmd/river
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/cmd/river#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:22.371Z (17 days ago)
- Versions: 61
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.564%
- Average: 10.175%
- Dependent repos count: 10.785%
proxy.golang.org: github.com/riverqueue/river/riverdriver
Package riverdriver exposes generic constructs to be implemented by specific drivers that wrap third party database packages, with the aim being to keep the main River interface decoupled from a specific database package so that other packages or other major versions of packages can be supported in future River versions. River currently only supports Pgx v5, and the interface here wrap it with only the thinnest possible layer. Adding support for alternate packages will require the interface to change substantially, and therefore it should not be implemented or invoked by user code. Changes to interfaces in this package WILL NOT be considered breaking changes for purposes of River's semantic versioning.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/riverdriver#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:26.236Z (17 days ago)
- Versions: 62
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.564%
- Average: 10.175%
- Dependent repos count: 10.785%
proxy.golang.org: github.com/riverqueue/river/riverdriver/riverdatabasesql
Package riverdatabasesql bundles a River driver for Go's built-in database/sql, making it interoperable with ORMs like Bun and GORM. It's generally still powered under the hood by Pgx because it's the only maintained, fully functional Postgres driver in the Go ecosystem, but it uses some lib/pq constructs internally by virtue of being implemented with Sqlc. Example_migrateDatabaseSQL demonstrates the use of River's Go migration API through Go's built-in database/sql package.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river/riverdriver/riverdatabasesql#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:35.831Z (17 days ago)
- Versions: 62
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.564%
- Average: 10.175%
- Dependent repos count: 10.785%
proxy.golang.org: github.com/riverqueue/river
Package river is a robust high-performance job processing system for Go and Postgres. See homepage, docs, and godoc, as well as the River UI. Being built for Postgres, River encourages the use of the same database for application data and job queue. By enqueueing jobs transactionally along with other database changes, whole classes of distributed systems problems are avoided. Jobs are guaranteed to be enqueued if their transaction commits, are removed if their transaction rolls back, and aren't visible for work _until_ commit. See transactional enqueueing for more background on this philosophy. Jobs are defined in struct pairs, with an implementation of `JobArgs` and one of `Worker`. Job args contain `json` annotations and define how jobs are serialized to and from the database, along with a "kind", a stable string that uniquely identifies the job. Workers expose a `Work` function that dictates how jobs run. Jobs are uniquely identified by their "kind" string. Workers are registered on start up so that River knows how to assign jobs to workers: A River `Client` provides an interface for job insertion and manages job processing and maintenance services. A client's created with a database pool, driver, and config struct containing a `Workers` bundle and other settings. Here's a client `Client` working one queue (`"default"`) with up to 100 worker goroutines at a time: ## Insert-only clients It's often desirable to have a client that'll be used for inserting jobs, but not working them. This is possible by omitting the `Queues` configuration, and skipping the call to `Start`: `Workers` can also be omitted, but it's better to include it so River can check that inserted job kinds have a worker that can run them. ## Stopping The client should also be stopped on program shutdown: There are some complexities around ensuring clients stop cleanly, but also in a timely manner. See graceful shutdown for more details on River's stop modes. `Client.InsertTx` is used in conjunction with an instance of job args to insert a job to work on a transaction: See the `InsertAndWork` example for complete code. Batch job insertion for efficiently inserting many jobs at once using Postgres `COPY FROM`. Cancelling jobs from inside a work function. Error and panic handling. Multiple queues to better guarantee job throughput, worker availability, and isolation between components. Periodic and cron jobs. Scheduled jobs that run automatically at their scheduled time in the future. Snoozing jobs from inside a work function. Subscriptions to queue activity and statistics, providing easy hooks for telemetry like logging and metrics. Test helpers to verify that jobs are inserted as expected. Transactional job completion to guarantee job completion commits with other changes in a transaction. Unique jobs by args, period, queue, and state. Web UI for inspecting and interacting with jobs and queues. Work functions for simplified worker implementation. ## Cross language enqueueing River supports inserting jobs in some non-Go languages which are then worked by Go implementations. This may be desirable in performance sensitive cases so that jobs can take advantage of Go's fast runtime. See developing River. Example_batchInsert demonstrates how many jobs can be inserted for work as part of a single operation. Example_completeJobWithinTx demonstrates how to transactionally complete a job alongside other database changes being made. Example_cronJob demonstrates how to create a cron job with a more complex schedule using a third party cron package to parse more elaborate crontab syntax. Example_customInsertOpts demonstrates the use of a job with custom job-specific insertion options. Example_errorHandler demonstrates how to use the ErrorHandler interface for custom application telemetry. Example_globalHooks demonstrates the use of hooks to modify River behavior which are global to a River client. Example_globalMiddleware demonstrates the use of middleware to modify River behavior which are global to a River client. Example_gracefulShutdown demonstrates a realistic-looking stop loop for River. It listens for SIGINT/SIGTERM (like might be received by a Ctrl+C locally or on a platform like Heroku to stop a process) and when received, tries a soft stop that waits for work to finish. If it doesn't finish in time, a second SIGINT/SIGTERM will initiate a hard stop that cancels all jobs using context cancellation. A third will give up on the stop procedure and exit uncleanly. Example_insertAndWork demonstrates how to register job workers, start a client, and insert a job on it to be worked. Example_jobArgsHooks demonstrates the use of hooks to modify River behavior. Example_jobCancel demonstrates how to permanently cancel a job from within Work using JobCancel. Example_jobCancelFromClient demonstrates how to permanently cancel a job from any Client using JobCancel. Example_jobSnooze demonstrates how to snooze a job from within Work using JobSnooze. The job will be run again after 5 minutes and the snooze attempt will decrement the job's attempt count, ensuring that one can snooze as many times as desired without being impacted by the max attempts. Example_periodicJob demonstrates the use of a periodic job. Example_queuePause demonstrates how to pause queues to prevent them from working new jobs, and later resume them. Example_scheduledJob demonstrates how to schedule a job to be worked in the future. Example_subscription demonstrates the use of client subscriptions to receive events containing information about worked jobs. Example_uniqueJob demonstrates the use of a job with custom job-specific insertion options. Example_workFunc demonstrates the use of river.WorkFunc, which can be used to easily add a worker with only a function instead of having to implement a full worker struct.
- Homepage: https://github.com/riverqueue/river
- Documentation: https://pkg.go.dev/github.com/riverqueue/river#section-documentation
- Licenses: MPL-2.0
- Latest release: v0.30.0 (published 23 days ago)
- Last Synced: 2026-01-18T20:05:26.149Z (17 days ago)
- Versions: 85
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.429%
- Dependent repos count: 10.745%
- Average: 16.045%
- Forks count: 18.762%
- Stargazers count: 25.244%
Dependencies
- github.com/davecgh/go-spew v1.1.1
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
- github.com/jackc/pgx/v5 v5.5.0
- github.com/jackc/puddle/v2 v2.2.1
- github.com/kr/text v0.2.0
- github.com/oklog/ulid/v2 v2.1.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.10.0
- github.com/spf13/cobra v1.8.0
- github.com/spf13/pflag v1.0.5
- github.com/stretchr/testify v1.8.4
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.9.0
- golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1
- golang.org/x/sync v0.5.0
- golang.org/x/text v0.9.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/cpuguy83/go-md2man/v2 v2.0.3
- github.com/creack/pty v1.1.9
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
- github.com/jackc/pgx/v5 v5.5.0
- github.com/jackc/puddle/v2 v2.2.1
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/oklog/ulid/v2 v2.1.0
- github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30
- github.com/pmezard/go-difflib v1.0.0
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.10.0
- github.com/russross/blackfriday/v2 v2.1.0
- github.com/spf13/cobra v1.8.0
- github.com/spf13/pflag v1.0.5
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.8.4
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.9.0
- golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1
- golang.org/x/sync v0.5.0
- golang.org/x/text v0.9.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0-rc.1
- github.com/riverqueue/river/rivershared v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.14.2
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.0
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/sync v0.18.0
- golang.org/x/text v0.31.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.1
- github.com/antlr4-go/antlr/v4 v4.13.0
- github.com/coder/websocket v1.8.12
- github.com/davecgh/go-spew v1.1.1
- github.com/dustin/go-humanize v1.0.1
- github.com/google/uuid v1.6.0
- github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/lib/pq v1.10.9
- github.com/mattn/go-isatty v0.0.20
- github.com/ncruces/go-strftime v0.1.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
- github.com/riverqueue/river v0.29.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/riverdriver/riverdatabasesql v0.29.0
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0
- github.com/riverqueue/river/riverdriver/riversqlite v0.29.0
- github.com/riverqueue/river/rivershared v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- github.com/tursodatabase/libsql-client-go v0.0.0-20240902231107-85af5b9d094d
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
- golang.org/x/sync v0.19.0
- golang.org/x/sys v0.38.0
- golang.org/x/text v0.32.0
- gopkg.in/yaml.v3 v3.0.1
- modernc.org/libc v1.66.10
- modernc.org/mathutil v1.7.1
- modernc.org/memory v1.11.0
- modernc.org/sqlite v1.41.0
- actions/checkout v4 composite
- actions/setup-go v5 composite
- golangci/golangci-lint-action v7 composite
- ikalnytskyi/action-setup-postgres v6 composite
- sqlc-dev/setup-sqlc v4 composite
- postgres ${{ matrix.postgres-version }} docker
- github.com/davecgh/go-spew v1.1.1
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- gopkg.in/yaml.v3 v3.0.1
- github.com/cpuguy83/go-md2man/v2 v2.0.6
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/dustin/go-humanize v1.0.1
- github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e
- github.com/google/uuid v1.6.0
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/lmittmann/tint v1.1.2
- github.com/mattn/go-isatty v0.0.20
- github.com/ncruces/go-strftime v0.1.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
- github.com/riverqueue/river v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riversqlite v0.29.0-rc.1
- github.com/riverqueue/river/rivershared v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/russross/blackfriday/v2 v2.1.0
- github.com/spf13/cobra v1.10.2
- github.com/spf13/pflag v1.0.9
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.14.2
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.0
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- go.uber.org/goleak v1.3.0
- go.yaml.in/yaml/v3 v3.0.4
- golang.org/x/crypto v0.45.0
- golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
- golang.org/x/mod v0.30.0
- golang.org/x/sync v0.19.0
- golang.org/x/sys v0.6.0
- golang.org/x/sys v0.38.0
- golang.org/x/text v0.32.0
- golang.org/x/tools v0.39.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- modernc.org/cc/v4 v4.26.5
- modernc.org/ccgo/v4 v4.28.1
- modernc.org/fileutil v1.3.40
- modernc.org/gc/v2 v2.6.5
- modernc.org/goabi0 v0.2.0
- modernc.org/libc v1.66.10
- modernc.org/mathutil v1.7.1
- modernc.org/memory v1.11.0
- modernc.org/opt v0.1.4
- modernc.org/sortutil v1.2.1
- modernc.org/sqlite v1.41.0
- modernc.org/strutil v1.2.1
- modernc.org/token v1.1.0
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.11.1
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/mod v0.31.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- github.com/creack/pty v1.1.9
- github.com/davecgh/go-spew v1.1.1
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/testify v1.11.1
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/dustin/go-humanize v1.0.1
- github.com/google/uuid v1.6.0
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/lmittmann/tint v1.1.2
- github.com/mattn/go-isatty v0.0.20
- github.com/ncruces/go-strftime v0.1.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
- github.com/riverqueue/river v0.29.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0
- github.com/riverqueue/river/riverdriver/riversqlite v0.29.0
- github.com/riverqueue/river/rivershared v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/spf13/cobra v1.10.2
- github.com/spf13/pflag v1.0.9
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
- golang.org/x/sync v0.19.0
- golang.org/x/sys v0.38.0
- golang.org/x/text v0.32.0
- gopkg.in/yaml.v3 v3.0.1
- modernc.org/libc v1.66.10
- modernc.org/mathutil v1.7.1
- modernc.org/memory v1.11.0
- modernc.org/sqlite v1.41.0
- github.com/antlr4-go/antlr/v4 v4.13.0
- github.com/coder/websocket v1.8.12
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/dustin/go-humanize v1.0.1
- github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e
- github.com/google/uuid v1.6.0
- github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/lib/pq v1.10.9
- github.com/mattn/go-isatty v0.0.20
- github.com/ncruces/go-strftime v0.1.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
- github.com/riverqueue/river v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverdatabasesql v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riversqlite v0.29.0-rc.1
- github.com/riverqueue/river/rivershared v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.14.2
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.0
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- github.com/tursodatabase/libsql-client-go v0.0.0-20240902231107-85af5b9d094d
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
- golang.org/x/mod v0.30.0
- golang.org/x/sync v0.19.0
- golang.org/x/sys v0.6.0
- golang.org/x/sys v0.38.0
- golang.org/x/text v0.32.0
- golang.org/x/tools v0.39.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- modernc.org/cc/v4 v4.26.5
- modernc.org/ccgo/v4 v4.28.1
- modernc.org/fileutil v1.3.40
- modernc.org/gc/v2 v2.6.5
- modernc.org/goabi0 v0.2.0
- modernc.org/libc v1.66.10
- modernc.org/mathutil v1.7.1
- modernc.org/memory v1.11.0
- modernc.org/opt v0.1.4
- modernc.org/sortutil v1.2.1
- modernc.org/sqlite v1.41.0
- modernc.org/strutil v1.2.1
- modernc.org/token v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/mod v0.31.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/creack/pty v1.1.9
- github.com/davecgh/go-spew v1.1.1
- github.com/kr/pretty v0.1.0
- github.com/kr/pretty v0.2.1
- github.com/kr/pretty v0.3.0
- github.com/kr/pty v1.1.1
- github.com/kr/text v0.1.0
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/rogpeppe/go-internal v1.6.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/testify v1.11.1
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/errgo.v2 v2.1.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/lib/pq v1.10.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0
- github.com/riverqueue/river/rivershared v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/lib/pq v1.10.9
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/riverdriver/riverpgxv5 v0.29.0-rc.1
- github.com/riverqueue/river/rivershared v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.14.2
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.0
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- go.uber.org/goleak v1.3.0
- golang.org/x/crypto v0.45.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/rivershared v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- golang.org/x/crypto v0.45.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/jackc/pgpassfile v1.0.0
- github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
- github.com/jackc/pgx/v5 v5.7.6
- github.com/jackc/puddle/v2 v2.2.2
- github.com/kr/pretty v0.3.0
- github.com/kr/text v0.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river/riverdriver v0.29.0-rc.1
- github.com/riverqueue/river/rivershared v0.29.0-rc.1
- github.com/riverqueue/river/rivertype v0.29.0-rc.1
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.11.1
- golang.org/x/crypto v0.45.0
- golang.org/x/sync v0.19.0
- golang.org/x/text v0.32.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/riverqueue/river v0.29.0
- github.com/riverqueue/river/riverdriver v0.29.0
- github.com/riverqueue/river/rivershared v0.29.0
- github.com/riverqueue/river/rivertype v0.29.0
- github.com/stretchr/testify v1.11.1
- github.com/tidwall/gjson v1.18.0
- github.com/tidwall/match v1.1.1
- github.com/tidwall/pretty v1.2.1
- github.com/tidwall/sjson v1.2.5
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/kr/pretty v0.3.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/testify v1.11.1
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.1