Repo Radar No. 48. Nine months old, 276,000 stars.

Edition No. 48 · 12 Oct 2026

Nine months old, 276,000 stars

Three ways to keep a server up, three Python finance libraries, three small PostgreSQL tools, and three that fit no pattern.

By Genn·12 repositories·16 min read

12 October 2026. Twelve open-source repositories, opened and checked this morning. No theme. Today's mix leans towards keeping a server running, doing research on financial markets, and looking after a PostgreSQL database.

We aim for twelve every day. Some candidates fall out while we check them — those are listed at the end, with the reason.

1. caddyserver/caddy (#4) — twenty minutes, one downloaded file. It is a web server that gets and renews its own HTTPS certificates. You stop having a reminder in the calendar for certificate renewal, because there is nothing to renew by hand. This is the standout of the edition. 2. pgpartman/pg_partman (#10) — half an hour, on a PostgreSQL table that has grown too big to work with. It splits one enormous table into many small ones by date, keeps making new ones as time passes, and drops old ones on a schedule you choose. 3. darold/ora2pg (#12) — one hour, and the first useful step changes nothing. Point it at an Oracle database and it prints a report saying what is in there and roughly how many days moving off Oracle would take. Reading that number is worth the hour even if you never move. 4. coroot/coroot (#5) — one evening. It watches a group of servers and draws a map of which program talks to which, without anybody adding a single line of code to the programs.

- pgpartman/pg_partman (2,834) — fourteen years old, and the copyright in its licence file has passed through three companies. Also one of today's four. - xataio/pgstream (1,198) — the smallest project in the edition, and the only one here that copies a change to the shape of a table, not just to the rows. - darold/ora2pg (1,240) — eighteen months since its last release and two weeks since its last code change. Also one of today's four.

Three things worth knowing, separate from the recommendations

- Two of today's twelve did not exist in 2025. affaan-m/ECC was created on 18 January 2026 and has about 276,800 stars. heygen-com/hyperframes was created on 10 March 2026 and has 61,487. Between them that is more attention than the other ten combined, gathered in under nine months. A star count records that somebody liked a project once; it says nothing about whether it will still be here next year. - Four of today's twelve ship a licence file that names nobody. Caddy, Reloader, pgstream and Ghidra all carry Apache-2.0 with the appendix line left as the blank template, "Copyright [yyyy] [name of copyright owner]". For Ghidra the real notice is in a separate NOTICE file naming the National Security Agency; for the other three the copyright holder appears nowhere in the licence at all. It is almost certainly an oversight in each case, and it is still worth knowing if a lawyer ever asks. - A release date with no year is not a date. GitHub drops the year on release pages, and it does so for old releases as well as recent ones. cuemacro/finmarketpy shows "10 Mar" for a release that is March 2025, nineteen months ago. One candidate dropped today showed "19 Feb" for February 2025. And pst-group/pysystemtrade shows "30 Sep" for a release whose year could not be settled by any source available here, because the project publishes no package anywhere. Every date in this edition that mattered was checked against a second source, and where that failed it is said so plainly.

A project started in January already has 276,000 stars

Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.

HyperFrames: web pages become video. Renders a video file from a web page.

61,487 stars · Apache-2.0, read from /blob/main/LICENSE, plain and unmodified, 'Copyright 2026 HeyGen, Inc.' · v0.8.150 of 2026-10-12; the release page reads '12 Oct 14:18' with no year and the release BODY states 'Released on 2026-10-12', corroborated by ungh pushedAt 2026-10-12T14:17:43Z one minute earlier. The npm package hyperframes is at 0.8.148, two patches behind the GitHub tag. · Track this in Scout · Share this tool

Renders a video file from an HTML page, stepping a headless browser through one frame at a time.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You start a project with one command, and it writes the starting files. You then write the composition as ordinary HTML. Timing lives in data attributes on the elements: data-start says when a piece appears, data-duration says how long it stays, data-track-index says which layer it sits on. Movement comes from whichever animation library the page already uses — GSAP, plain CSS, Lottie, Three.js and others are supported, as long as the animation can be moved to an exact moment on demand. A preview command serves the page in a browser and reloads it as you edit. The render command then opens the page in headless Chrome (a browser with no window on screen), steps to each frame in turn, captures it, and hands the frames to FFmpeg (a long-standing program that converts audio and video) to be encoded; audio is mixed in the same pass. It ships twenty ready-made "skills", short instruction files that let a coding assistant drive it. What it does not do is edit existing footage. It is a renderer, not an editor, and it has no interface for cutting or arranging clips by hand.

Why it matters

Who it suits. Anyone who already writes web pages and needs short videos on a repeating schedule — product clips, release notes, data explainers — and does not want to open an editing program every time. It fits especially well where the video has to be regenerated whenever the underlying numbers change, because the whole thing is text and can be rebuilt by a script. Skip it if your video is footage of real people and places; this is for things drawn by code.

Verdict. Worth an afternoon if you already know HTML, and close to worthless if you do not — the whole saving comes from reusing knowledge you have. The honest comparison is remotion-dev/remotion, which is bigger at 63,153 stars, is built around React rather than plain HTML, and has a far more developed story for rendering in the cloud. Choose Remotion if you write React and need distributed rendering; choose this if you want plain HTML and animation libraries you already know. Two things to watch: the project is three patch versions ahead of its own published package, and it is seven months old, so expect the shape of it to keep moving.

Stars61,487
LicenceApache-2.0, read from /blob/main/LICENSE, plain and unmodified, 'Copyright 2026 HeyGen, Inc.'
Latestv0.8.150 of 2026-10-12; the release page reads '12 Oct 14:18' with no year and the release BODY states 'Released on 2026-10-12', corroborated by ungh pushedAt 2026-10-12T14:17:43Z one minute earlier. The npm package hyperframes is at 0.8.148, two patches behind the GitHub tag.
Good
  • Plain HTML and CSS, so there is no new layout language to learn.
  • One command renders; the same command runs in a container or on a cloud function.
  • Preview in a real browser with live reload, so you see the composition as you write it.
Watch for
  • Needs Node.js 22 or newer and FFmpeg installed separately; neither is a one-click install for a non-programmer.
  • The project publishes no figures at all for render speed, memory or processor use, so you cannot plan a machine from the documentation.
  • Its own test files are about 240 MB and need Git LFS, so a full developer clone is heavy.
  • GitHub's own pages disagree about how much is outstanding: the repository tab says 82 issues and 181 pull requests, while the issue and pull request pages themselves say 12 and 231.
Similar repositories
Install
npx hyperframes init my-video
cd my-video
npx hyperframes preview
npx hyperframes render
Screenshots
heygen-com/hyperframes: GitHub preview cardheygen-com/hyperframes: Screenshot 1heygen-com/hyperframes: Screenshot 2heygen-com/hyperframes: Screenshot 3heygen-com/hyperframes: Screenshot 4
ECC: a bundle for coding assistants. Installs agents, skills and rules at once.

276,800 on the page against 276,183 on ungh; the larger taken stars · MIT, read from /blob/main/LICENSE, plain and unmodified, 'Copyright (c) 2026 Affaan Mustafa'. No second licence file in the root tree, although the README advertises a paid tier for private repositories at $19 per seat per month. · v2.2.3, the release page reading '01 Oct 23:00' with no year and settled as 2026-10-01 by the npm registry, which dates ecc-universal 2.2.3 to 2026-10-02T01:56:16Z, about three hours after the GitHub release; the README's own 'Current release: 2.2.3 (2026-10-01)' agrees. ungh's release cache stops at v2.2.1 and knows neither 2.2.2 nor 2.2.3. · Track this in Scout · Share this tool

A large installable bundle of agents, skills, rules and memory files for coding assistants, with a scanner that audits the settings it installs.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It installs a set of configuration files for coding assistants — Claude Code first, and several others partially. Those files impose a fixed loop on the assistant: plan, test, implement, review, verify, remember, improve. Hooks fire when the assistant uses a tool, and session summaries are written out afterwards. A memory store keeps plain Markdown notes in .ecc/memory/ next to a project and in ~/.ecc/memory/ for everything. A separate piece called AgentShield reads an assistant's own configuration — prompts, hooks, connected servers, permissions, stored secrets — and reports what looks risky. Its own tables claim 68 agents, 293 skills and 94 older command shims. What it does not do is give every assistant the same features: Claude Code is the reference, and the others are explicitly partial. It also says plainly that pinning a version "is not a security audit".

Why it matters

Who it suits. Anyone who already works with a coding assistant every day and has started writing their own instruction files, and who would rather adopt a large tested set than build one slowly. It is also worth a look for the AgentShield part alone, if you want something to read your assistant's settings and tell you what is exposed. Skip it if you use an assistant occasionally; several hundred instructions is a lot of behaviour to inherit for light use.

Verdict. This is the most-starred project in the edition by a wide margin and the youngest, and those two facts together are the reason to be careful rather than the reason to install. 276,000 stars collected since January is a measure of attention, not of whether the instructions suit the work you do. Read the agents and skills you are enabling before you enable them, start with the minimal profile, and treat the memory store as notes rather than rules. Its own documentation disagrees with itself about how many agents and skills there are — one section says 68 and 293, another says 67 and 281 — which is a small thing that tells you how fast it is moving.

Stars276,800 on the page against 276,183 on ungh; the larger taken
LicenceMIT, read from /blob/main/LICENSE, plain and unmodified, 'Copyright (c) 2026 Affaan Mustafa'. No second licence file in the root tree, although the README advertises a paid tier for private repositories at $19 per seat per month.
Latestv2.2.3, the release page reading '01 Oct 23:00' with no year and settled as 2026-10-01 by the npm registry, which dates ecc-universal 2.2.3 to 2026-10-02T01:56:16Z, about three hours after the GitHub release; the README's own 'Current release: 2.2.3 (2026-10-01)' agrees. ungh's release cache stops at v2.2.1 and knows neither 2.2.2 nor 2.2.3.
Good
  • One command installs the whole set, and an uninstall removes only the files it recorded putting there.
  • AgentShield is useful on its own: it reads prompts, hooks, permissions and secrets and reports the risks.
  • Memory is plain Markdown in a folder you can read and edit, not a database.
Watch for
  • Nine months old, moving fast, and its own README contradicts itself on basic counts.
  • Support outside Claude Code is partial: no hook execution on one assistant, no hooks or runtime agents on another, and documented defects on native Windows.
  • A paid tier exists for private repositories, so expect the free and paid lines to keep moving.
Similar repositories
Install
npx ecc-universal@2.2.3 setup
Screenshots
affaan-m/ECC: GitHub preview cardaffaan-m/ECC: Screenshot 1affaan-m/ECC: Screenshot 2affaan-m/ECC: Screenshot 3affaan-m/ECC: Screenshot 4
Ghidra: reverse engineering suite. Reads a compiled program back into code.

84,300 read from the page; ungh's six-week-old snapshot gives 73,361 and was not used stars · Apache-2.0, read from /blob/master/LICENSE, standard text with THE COPYRIGHT HOLDER PLACEHOLDER UNFILLED — the only copyright line is 'Copyright [yyyy] [name of copyright owner]'. A separate NOTICE file names the National Security Agency, states that portions written by US federal employees in the course of their work are generally public domain, and records that third-party components carry their own compatible licences. A GPL/ directory holds standalone support programs under GPL 3, executed as separate processes for that reason; its README could not be opened and the /licenses/ tree view is robots-disallowed. · Ghidra_12.1.4_build, the release page reading '21 Sep 17:38' with no year and settled as 2026-09-21T17:38:59Z by ungh's releases endpoint, which matches to the minute. No package registry publishes this project, so the usual registry route did not exist. Siblings: 12.1.3 of 2026-08-18, 12.1.2 of 2026-06-05. · Track this in Scout · Share this tool

A reverse-engineering suite that disassembles a compiled program and decompiles it into readable C-like code.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You give it a compiled program — a Windows, macOS or Linux executable, or firmware from a device. It identifies the processor and the file format, breaks the file into instructions, and then produces C-like code that approximates what the original source did. It draws control-flow graphs so you can see the shape of a function. You work through a window-based interface, marking up names and types as you learn them, and the whole project can be shared with other analysts. It also runs with no interface at all, so a batch of files can be processed by a script. Scripts and extensions are written in Java or Python. What it does not do is run the program: this is static analysis, reading the file rather than watching it execute. Its own README also warns that some versions have known security holes and points at the published advisories.

Why it matters

Who it suits. Anyone who has to understand a binary they did not build: malware analysts, firmware engineers, people auditing a vendor's shipped product, and students learning how compiled code works. It also suits anyone who needs a second opinion on what a closed-source dependency is doing. Skip it if you have the source code — reading the source is always easier, and this is a last resort by design.

Verdict. Worth the time if the work genuinely calls for it, and a long detour if it does not; expect weeks rather than evenings before the output stops looking like noise. The decompiler is the reason to choose this over the older command-line tools: it is strong, it is free, and before 2019 nothing of its quality was available without a very large licence fee. radare/radare2 is the command-line alternative and is faster to drive once learned, while angr/angr is the one to reach for when you want a program to reason about the binary rather than a person. Note the licensing shape before building on it: the main tree is Apache-2.0, but several helper programs in the GPL folder are GPL-3 and are run as separate processes for that reason.

Stars84,300 read from the page; ungh's six-week-old snapshot gives 73,361 and was not used
LicenceApache-2.0, read from /blob/master/LICENSE, standard text with THE COPYRIGHT HOLDER PLACEHOLDER UNFILLED — the only copyright line is 'Copyright [yyyy] [name of copyright owner]'. A separate NOTICE file names the National Security Agency, states that portions written by US federal employees in the course of their work are generally public domain, and records that third-party components carry their own compatible licences. A GPL/ directory holds standalone support programs under GPL 3, executed as separate processes for that reason; its README could not be opened and the /licenses/ tree view is robots-disallowed.
LatestGhidra_12.1.4_build, the release page reading '21 Sep 17:38' with no year and settled as 2026-09-21T17:38:59Z by ungh's releases endpoint, which matches to the minute. No package registry publishes this project, so the usual registry route did not exist. Siblings: 12.1.3 of 2026-08-18, 12.1.2 of 2026-06-05.
Good
  • A decompiler of commercial quality, free, covering a very wide range of processors.
  • Runs with no interface, so a batch of files can be analysed by a script.
  • Extensions and scripts in Java or Python, and a shared project mode for several analysts.
Watch for
  • A long learning curve, and the README names no supported processor list, so you find out by trying.
  • Needs Java: version 21 to run, version 25 plus Gradle 9.1.0 or newer to build from source.
  • Its own README warns that certain versions carry known security holes, and tells you not to extract a new release over an existing installation.
Similar repositories
Install
./ghidraRun
Screenshots
NationalSecurityAgency/ghidra: Screenshot 1
Caddy: web server, automatic HTTPS. Gets and renews its certificates by itself.

77,827 stars · Apache-2.0, read from /blob/master/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED — 'Copyright [yyyy] [name of copyright owner]' is the only copyright line in the file. No second licence file; the root holds LICENSE and AUTHORS only. · v2.11.7, the release page reading '03 Oct 05:58' with no year and settled as 2026-10-03 by pkg.go.dev. ungh's /releases sub-path refused this repository on two attempts and could not corroborate. · Track this in Scout · Share this tool

A web server that obtains and renews its own HTTPS certificates, including private ones for internal names.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It serves HTTP/1.1, HTTP/2 and HTTP/3, the three versions of the protocol browsers use. On startup it reads a configuration file and, for every public name it finds, asks a certificate authority for a certificate; it supports two of them, ZeroSSL and Let's Encrypt, and falls back from one to the other. For internal names and bare IP addresses it runs a small certificate authority of its own, so a private service can speak HTTPS too. Renewal happens on its own in the background. The configuration can be a short Caddyfile, a JSON document, or a live change pushed to a running server over a local management interface. It also works as a reverse proxy, which is the job of standing in front of other programs and passing requests to them. What it does not publish is any figure for memory or processor use; the only numbers in the README are adoption claims, such as "millions of TLS certificates" managed.

Why it matters

Who it suits. Anyone running one or several small sites or services on a machine they rent, who does not want certificate renewal to be a thing that can fail at three in the morning. It is also the shortest path to HTTPS on an internal network, because the built-in private certificate authority covers names that no public authority will sign. Skip it if a proxy setup is already in place and understood, and its renewal process has never surprised anyone; the gain here is in a job that stops existing, so there is nothing to gain if that job never broke.

Verdict. The clearest win on this page, and twenty minutes is an honest estimate for a first site. traefik/traefik at 65,177 stars is the closer comparison if your services run in containers and appear and disappear on their own, because it discovers them rather than being told about them; Caddy is simpler when the list of sites is written down and stable. envoyproxy/envoy is the heavier choice for large internal networks and is the wrong tool for one machine. One thing to know before exposing anything: the management interface listens on port 2019 and is not password-protected, which is safe only because it is bound to the local machine by default. If you ever change that address, you have handed full control of the server to whoever can reach it.

Stars77,827
LicenceApache-2.0, read from /blob/master/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED — 'Copyright [yyyy] [name of copyright owner]' is the only copyright line in the file. No second licence file; the root holds LICENSE and AUTHORS only.
Latestv2.11.7, the release page reading '03 Oct 05:58' with no year and settled as 2026-10-03 by pkg.go.dev. ungh's /releases sub-path refused this repository on two attempts and could not corroborate.
Good
  • Certificates are obtained and renewed with no action from anyone, including for internal names.
  • One static file with no dependencies, so installing it is copying a file.
  • Configuration can be a six-line Caddyfile, and the same server also accepts JSON and live changes.
Watch for
  • The management interface on port 2019 has no authentication and is protected only by being bound to the local machine; moving it to a public address is dangerous and easy to do by accident.
  • Adding a plugin means rebuilding the binary with a separate tool, not dropping a file into a folder.
  • Its own licence file never names a copyright holder — the template line "Copyright [yyyy] [name of copyright owner]" is still unfilled.
Similar repositories
  • traefik/traefik

    The same job with automatic discovery of containers, at 65,177 stars, with code on 12 October 2026; better when services come and go, heavier when they do not.

    Track this in Scout
  • Kong/kong

    An API gateway rather than a web server, at 44,262 stars, aimed at managing many internal services with authentication and rate limits.

    Track this in Scout
  • envoyproxy/envoy

    The proxy large internal networks are built on, at 29,038 stars, far more capable and far more work to configure.

    Track this in Scout
Install
git clone https://github.com/caddyserver/caddy.git
cd caddy/cmd/caddy/
go build
Screenshots
caddyserver/caddy: GitHub preview cardcaddyserver/caddy: Screenshot 1
Coroot: a map of running services. Watches servers and draws what talks to what.

7,933 stars · Apache-2.0, read from /blob/main/LICENSE, standard and unmodified, 'Copyright 2020-present Coroot, Inc.' NO enterprise licence file exists anywhere in the tree, and yet a paid edition exists: the documented install uses the chart coroot/coroot-ce for Community and coroot/coroot-ee for Enterprise, the latter requiring --set licenseKey from 'a paid subscription or free trial'. The README links an Enterprise page and never says what differs. · v1.27.2 of 2026-10-09, the release page reading '09 Oct 20:33' with no year and settled by pkg.go.dev. BOTH OTHER SOURCES WERE STALE: the GitHub releases LIST page topped out at 1.26.2 of 15 September and ungh's releases endpoint at v1.26.0 of 2026-09-07. · Track this in Scout · Share this tool

Watches a group of servers from inside the kernel and draws a map of which service talks to which, with no changes to the services themselves.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You install a small agent on each machine. The agent uses eBPF, a feature of the Linux kernel that lets a safe program watch what the system is doing from the inside, so nothing in your own programs needs changing. From that it collects measurements, logs, request traces and processor profiles. It then builds a map of every service and every connection between them. Built-in checks run against each application with no configuration at all, and you can adjust them per application afterwards. Logs are grouped into repeating patterns and linked to the traces they belong to. The profiler attributes a spike in processor or memory use to a particular line of code, compared against a normal baseline. On Kubernetes it notices a new release going out and compares it with the one before. What it does not claim is completeness: its own documentation says it identifies "over 80% of issues" automatically, and the release-comparison and cloud-cost features work only on Kubernetes and on the three large cloud providers.

Why it matters

Who it suits. Anyone running more than two or three services who cannot add measurement code to all of them, either because there is too much of it or because some of it is somebody else's. The eBPF approach is the whole point: it sees traffic that was never instrumented, including databases and third-party containers. Skip it if you run one program on one machine — a log file and a process monitor will tell you more for far less work.

Verdict. Worth an evening, and the map is the part people keep. Two defaults must be changed before this is reachable from anywhere but the local machine, and the documentation does not mention either: it listens on all network interfaces on port 8080 with no HTTPS configured, and the first administrator account is created with an empty password. Put it behind something that asks for a login before you expose it. SigNoz/signoz at 32,335 stars is the larger alternative and expects applications to send their own measurements; parca-dev/parca at 4,993 stars does the continuous profiling part only and does it well.

Stars7,933
LicenceApache-2.0, read from /blob/main/LICENSE, standard and unmodified, 'Copyright 2020-present Coroot, Inc.' NO enterprise licence file exists anywhere in the tree, and yet a paid edition exists: the documented install uses the chart coroot/coroot-ce for Community and coroot/coroot-ee for Enterprise, the latter requiring --set licenseKey from 'a paid subscription or free trial'. The README links an Enterprise page and never says what differs.
Latestv1.27.2 of 2026-10-09, the release page reading '09 Oct 20:33' with no year and settled by pkg.go.dev. BOTH OTHER SOURCES WERE STALE: the GitHub releases LIST page topped out at 1.26.2 of 15 September and ungh's releases endpoint at v1.26.0 of 2026-09-07.
Good
  • Nothing in the watched programs changes; the agent reads from the kernel.
  • The service map and the built-in checks work with no configuration on the first run.
  • Profiling points at a line of code, not just at a process.
Watch for
  • It listens on all interfaces on port 8080 with no HTTPS, and the first administrator password is empty. Neither install guide says so.
  • Needs Linux kernel 4.16 or newer, and it brings a ClickHouse database with it, so plan for real disk and memory.
  • The project publishes no figure for how much processor time the agent costs; the page that would say was unreachable when this was checked.
Similar repositories
Install
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | docker compose -f - up -d
Screenshots
coroot/coroot: GitHub preview cardcoroot/coroot: Screenshot 1coroot/coroot: Screenshot 2coroot/coroot: Screenshot 3coroot/coroot: Screenshot 4
Reloader: restarts on settings change. Rolls workloads when their config changes.

10,400 read from the page; ungh's eleven-week-old snapshot gives 10,251 stars · Apache-2.0, read from /blob/master/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED. No second licence file, yet a 'Reloader Enterprise' section in the README sells signed CVE-free images with an SBOM, SLA-backed support, artifact provenance and an escalation path, with no pricing published and no licence file to match. · chart-v2.2.18 of 2026-09-30, the release page reading '30 Sep' with no year and SETTLED BY ARTIFACT HUB'S JSON API, which gives that chart a ts of 1790749039 — a second source new to this archive. The release marked Latest is a HELM CHART tag, not an application release: Artifact Hub records chart 2.2.18 as carrying app_version v1.4.22, so the current stable application is v1.4.22 of 9 September 2026, with a v2.0.0-beta.1 line in pre-release. pkg.go.dev is behind at v1.4.19 of 1 July 2026. · Track this in Scout · Share this tool

A Kubernetes controller that triggers a rolling update when a ConfigMap or Secret a workload uses is changed.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It runs as a controller inside the cluster — a small program that watches objects and reacts to them. It watches ConfigMaps (settings files) and Secrets (passwords and keys). When one changes, it finds the workloads that reference it, or the ones that opted in with an annotation, and triggers a rolling update: new copies start, old copies stop, and the service stays up. It covers Deployments, StatefulSets, DaemonSets, DeploymentConfigs and Argo Rollouts. It can also send a note to a webhook, Slack, Teams or Google Chat when it acts. With the CSI integration switched on it also watches secrets arriving from an external store. Its own documentation is unusually honest about where it stops: it reacts to CSI status changes, not to direct updates in the external store; only one resource type can be ignored at a time; and the auto and search annotations cannot be combined.

Why it matters

Who it suits. Anyone running applications on Kubernetes where configuration changes more often than code does — feature switches, rotated credentials, tuning values. It is most useful where several teams change settings and nobody owns the job of restarting things afterwards. Skip it if your deployment pipeline already redeploys on every settings change, because then the restart is already happening.

Verdict. A small, well-documented tool that removes a whole category of "it still has the old value" confusion, and it has been maintained since 2018. Before installing it, read the permissions it asks for: the shipped manifest creates a cluster-wide role that can read every Secret and every ConfigMap in every namespace. That is how it does its job, and it is also a very large amount of trust for one small program. Note too that the kubectl and kustomize install commands both pull from the project's master branch rather than a fixed release, so what you install changes over time; take a release file instead. wave-k8s/wave at 777 stars does the same job with a narrower footprint if the permission grant troubles you.

Stars10,400 read from the page; ungh's eleven-week-old snapshot gives 10,251
LicenceApache-2.0, read from /blob/master/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED. No second licence file, yet a 'Reloader Enterprise' section in the README sells signed CVE-free images with an SBOM, SLA-backed support, artifact provenance and an escalation path, with no pricing published and no licence file to match.
Latestchart-v2.2.18 of 2026-09-30, the release page reading '30 Sep' with no year and SETTLED BY ARTIFACT HUB'S JSON API, which gives that chart a ts of 1790749039 — a second source new to this archive. The release marked Latest is a HELM CHART tag, not an application release: Artifact Hub records chart 2.2.18 as carrying app_version v1.4.22, so the current stable application is v1.4.22 of 9 September 2026, with a v2.0.0-beta.1 line in pre-release. pkg.go.dev is behind at v1.4.19 of 1 July 2026.
Good
  • Covers every common Kubernetes workload type, including Argo Rollouts.
  • The documentation lists its own limits plainly, which is rarer than it should be.
  • Defaults are modest: 150m of processor and 512Mi of memory as limits.
Watch for
  • The default install grants read access to every Secret in the cluster, in every namespace.
  • The quick install commands track the master branch, so they are not pinned to a release.
  • The default strategy edits pod templates, which deployment tooling may then report as unexpected drift; the project suggests switching to the annotations strategy instead.
Similar repositories
Install
helm repo add stakater https://stakater.github.io/stakater-charts
helm repo update
helm install reloader stakater/reloader
Screenshots
stakater/Reloader: GitHub preview cardstakater/Reloader: Screenshot 1stakater/Reloader: Screenshot 2
FinancePy: pricing financial contracts. Values derivatives and measures their risk.

3,174 stars · GPL-3.0, read from /blob/master/LICENSE, standard and unmodified, and THE FILE NAMES NO PROJECT COPYRIGHT HOLDER — only the Free Software Foundation's own boilerplate line, with the 'How to Apply These Terms' placeholders left unfilled. · V1.1.2 of 2026-08-21, the release page reading '21 Aug 15:52' with no year and settled by the PyPI project page, which dates financepy 1.1.2 to 21 August 2026. GitHub and PyPI agree exactly. ungh's releases endpoint is years stale here, knowing only V0.360 of 2024 and V0.185 of 2020, while its repo record for the same project is fresh — the two-endpoint split again. · Track this in Scout · Share this tool

A Python library that prices financial derivatives and measures their risk, from government bonds to Bermudan swaptions.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It is organised in four parts. One holds the dull but essential machinery: dates, business-day calendars, day-count conventions and payment schedules. One holds market data structures: interest-rate curves, volatility surfaces, prices. One holds models, from the classic Black-Scholes formula up to stochastic volatility. The last holds the products themselves, from a plain government bond up to a Bermudan swaption. The idea is stated as a formula in the README: a valuation is a product plus a model plus market data, and every product object exposes a value() method that takes the other two. Speed comes from Numba, a tool that compiles Python to machine code at runtime. The project ships more than ninety example notebooks. What it does not do is supply market data, execute trades or connect to a broker. Its own README also calls the library a beta and says values "should be close to if not identical to" a commercial terminal, which is not the same as identical.

Why it matters

Who it suits. Anyone who needs to price or risk-manage a contract in Python and would otherwise be implementing a textbook by hand: a quantitative analyst building a model, a risk team cross-checking a vendor's number, a student working through the theory with runnable code. The ninety notebooks are the real draw, because they show the arithmetic rather than hiding it. Skip it if you want a trading system; this is the calculation layer only.

Verdict. The most approachable of the serious open pricing libraries, and the one with the shortest path from install to a priced instrument. lballabio/QuantLib at 7,615 stars is the reference implementation the industry actually uses, is far more complete, and is C++ with Python bindings — choose it when correctness against market convention matters more than readability. goldmansachs/gs-quant at 11,903 stars is larger but is tied to one bank's services for much of its value. Two cautions here: the licence is GPL-3.0, which has real consequences if you embed this in something you sell, and the first import is slow while Numba compiles.

Stars3,174
LicenceGPL-3.0, read from /blob/master/LICENSE, standard and unmodified, and THE FILE NAMES NO PROJECT COPYRIGHT HOLDER — only the Free Software Foundation's own boilerplate line, with the 'How to Apply These Terms' placeholders left unfilled.
LatestV1.1.2 of 2026-08-21, the release page reading '21 Aug 15:52' with no year and settled by the PyPI project page, which dates financepy 1.1.2 to 21 August 2026. GitHub and PyPI agree exactly. ungh's releases endpoint is years stale here, knowing only V0.360 of 2024 and V0.185 of 2020, while its repo record for the same project is fresh — the two-endpoint split again.
Good
  • More than ninety worked example notebooks, which is the fastest way into a subject like this.
  • One consistent shape across every product: supply a model and market data, call value().
  • Covers four asset classes — equity, foreign exchange, interest rates and credit — plus bonds.
Watch for
  • GPL-3.0, so embedding it in a product you distribute obliges you to publish source.
  • Described by its own authors as a beta, with no guarantee of agreeing with a commercial pricing terminal.
  • Its licence file names no copyright holder at all; only the Free Software Foundation's own boilerplate line is present.
Similar repositories
Install
python3 -m venv venv
source venv/bin/activate
pip install financepy
Screenshots
domokane/FinancePy: GitHub preview card
finmarketpy: testing trading ideas. Backtests, seasonality and event studies.

3,810 stars · Apache-2.0, 'Copyright (c) 2016 Cuemacro'. THE FILE IS SPELLED LICENCE, the British spelling, and LICENSE, LICENSE.md, LICENSE.txt and COPYING all fail; /blob/master/LICENCE returned a server error on every attempt and raw.githubusercontent.com served it. ADD BOTH THE SPELLING AND THE RAW FALLBACK TO THE CHAIN. · v0.11.19 of 2025-03-10 — NINETEEN MONTHS. The release page reads '10 Mar 17:58' with no year; PyPI dates 0.11.19 to 10 March 2025 and ungh's releases endpoint gives 2025-03-10T17:58:01Z, matching to the second. THE METHOD POINT: this proves GitHub renders a bare date for OLD releases too, so the past-date heuristic is unsafe in both directions. The README's own text dates the same release one day earlier, 9 March 2025, and is wrong. · Track this in Scout · Share this tool

A Python library for backtesting trading strategies, with seasonality and event studies built in.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It pulls market data through a companion library called findatapy, which knows how to talk to several data sources. You then define a backtest using one of its strategy templates, in an object-oriented style rather than by writing a loop. It reports historical and cumulative returns, how leverage changed over time, and the return of each trade. Beyond the backtest it has two study modes: seasonality, which asks whether an instrument behaves differently at particular times of year, and event studies, which line up price behaviour around repeated scheduled announcements. Position sizing can target a chosen level of volatility. Charts come from a third companion library called chartpy, which can draw through matplotlib, Plotly or Bokeh. What it does not do is supply data — some of the sources it supports need a paid licence — and it no longer bundles FinancePy, which became optional in March 2025.

Why it matters

Who it suits. Anyone doing research on currencies, rates or commodities who wants seasonality and event studies alongside an ordinary backtest, and who is comfortable assembling a small stack of libraries to get there. The event-study machinery is the distinctive part; most backtesting libraries have nothing like it. Skip it if you want to install one package and start — the three-library setup is a genuine barrier.

Verdict. Good research tooling behind an awkward front door, and the front door is the honest warning. You install three of the author's libraries, the versions on GitHub and on PyPI differ, and credentials have to be configured in Python files before any data will download. The project is also slow-moving: the last release was 10 March 2025, nineteen months ago, although code landed in April 2026, so it is quiet rather than finished. If you want a backtester and nothing else, kernc/backtesting.py at 9,035 stars is much simpler and was updated in August 2026. Come here for the studies, not for the backtest.

Stars3,810
LicenceApache-2.0, 'Copyright (c) 2016 Cuemacro'. THE FILE IS SPELLED LICENCE, the British spelling, and LICENSE, LICENSE.md, LICENSE.txt and COPYING all fail; /blob/master/LICENCE returned a server error on every attempt and raw.githubusercontent.com served it. ADD BOTH THE SPELLING AND THE RAW FALLBACK TO THE CHAIN.
Latestv0.11.19 of 2025-03-10 — NINETEEN MONTHS. The release page reads '10 Mar 17:58' with no year; PyPI dates 0.11.19 to 10 March 2025 and ungh's releases endpoint gives 2025-03-10T17:58:01Z, matching to the second. THE METHOD POINT: this proves GitHub renders a bare date for OLD releases too, so the past-date heuristic is unsafe in both directions. The README's own text dates the same release one day earlier, 9 March 2025, and is wrong.
Good
  • Seasonality and event studies are built in, which is unusual and hard to write yourself.
  • Volatility-targeted position sizing is included rather than left as an exercise.
  • Charts can be drawn through three different libraries without changing the calling code.
Watch for
  • Three libraries to install, and the GitHub and PyPI versions diverge, so mixing sources breaks things.
  • Credentials must be configured in Python files before any data download, and the examples need a third-party API key.
  • Last release 10 March 2025; code landed 16 April 2026, so it is slow-moving. Its own README dates that release one day wrong.
Similar repositories
Install
python3 -m venv venv
source venv/bin/activate
pip install git+https://github.com/cuemacro/chartpy.git
pip install git+https://github.com/cuemacro/findatapy.git
pip install git+https://github.com/cuemacro/finmarketpy.git
Screenshots
cuemacro/finmarketpy: GitHub preview cardcuemacro/finmarketpy: Screenshot 1cuemacro/finmarketpy: Screenshot 2cuemacro/finmarketpy: Screenshot 3cuemacro/finmarketpy: Screenshot 4
pysystemtrade: a whole trading system. Backtests and trades futures systematically.

3,550 stars · GPL-3.0, read from /blob/develop/LICENSE — note the default branch is develop, so a master path 404s. Standard and unmodified, and the file names no project copyright holder, only the Free Software Foundation boilerplate. · 1.8.3, and THE YEAR COULD NOT BE SETTLED BY ANY SOURCE AVAILABLE HERE. The release page reads '30 Sep 07:52' with no year. The project is NOT ON PyPI AT ALL — a determination, stated in its own README — so the usual registry route does not exist; ungh's release cache for this repository stops at 1.8.2 of 2024-11-06, which bounds the release to 2025 or 2026 and no further; the pst-group ungh releases path, the releases atom feed and api.github.com were all refused. The release page's own '3 commits to develop since this release' against a pushedAt of 2026-10-08 on a 4,842-commit repository makes 2026 far more plausible, but that is an inference and the edition prints it as unsettled. · Track this in Scout · Share this tool

A complete systematic futures trading system in Python, with backtesting and live execution through one broker.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It implements the framework from Rob Carver's books on systematic trading: how to combine trading rules, how to size positions, how to allocate capital across instruments. You can run it purely as a backtesting environment, feeding it historical futures data and measuring what the rules would have done. You can also run it as a live system: it connects to Interactive Brokers through the ib_async library and places real orders on a schedule. The repository holds 4,842 commits over eleven years. It is not published as a package — the README states plainly that it is not on PyPI and must be installed from git. What it does not offer is support: the README says the maintainers provide no high-level help and that anyone needing it "should choose another project", and it states that the owners are not registered or authorised by any financial regulator.

Why it matters

Who it suits. A person who has read the books, understands futures and leverage, and wants the author's own implementation rather than their own reading of it. It also suits anyone studying how a complete systematic system is put together, because very few are published in full. Skip it unless you can read and modify Python comfortably and can afford to lose what you put in; leveraged futures can lose more than the deposit.

Verdict. Genuinely the real thing rather than a teaching example, and that is both the recommendation and the warning. The project changed hands: it moved from its original author's account to the pst-group organisation in January 2026, with a different primary maintainer since 2024, and the old address still redirects. Code landed four days before this was written, so it is the most actively developed project in today's markets section. Two gaps to know about: the README states no minimum Python version anywhere and there is no published package to check one against, and the newest release is tagged 1.8.3 with a date of 30 September whose year could not be established from any source available here — it is either 2025 or 2026, and the edition says so rather than guessing. Use the develop branch, which is the default.

Stars3,550
LicenceGPL-3.0, read from /blob/develop/LICENSE — note the default branch is develop, so a master path 404s. Standard and unmodified, and the file names no project copyright holder, only the Free Software Foundation boilerplate.
Latest1.8.3, and THE YEAR COULD NOT BE SETTLED BY ANY SOURCE AVAILABLE HERE. The release page reads '30 Sep 07:52' with no year. The project is NOT ON PyPI AT ALL — a determination, stated in its own README — so the usual registry route does not exist; ungh's release cache for this repository stops at 1.8.2 of 2024-11-06, which bounds the release to 2025 or 2026 and no further; the pst-group ungh releases path, the releases atom feed and api.github.com were all refused. The release page's own '3 commits to develop since this release' against a pushedAt of 2026-10-08 on a 4,842-commit repository makes 2026 far more plausible, but that is an inference and the edition prints it as unsettled.
Good
  • A complete published system rather than a component, with eleven years and 4,842 commits behind it.
  • Backtesting and live trading share one codebase, so what you tested is what runs.
  • Only 26 open issues and 5 open pull requests on a project this size, which suggests the board is tended.
Watch for
  • Live trading needs an Interactive Brokers account and places real orders; futures can lose more than the deposit.
  • Not on PyPI, no stated minimum Python version, and the default branch is develop rather than main.
  • No high-level support by the maintainers' own statement, and no regulatory authorisation of any kind.
Similar repositories
Install
git clone https://github.com/pst-group/pysystemtrade.git
cd pysystemtrade
python3 -m venv venv
source venv/bin/activate
python -m pip install .
Screenshots
pst-group/pysystemtrade: GitHub preview card
10

pgpartman/pg_partman

💎 hidden gem
pg_partman: splitting huge tables. Creates and retires table partitions by date.

2,834 stars · PostgreSQL License, read from LICENSE.txt on the default branch 'development' — /blob/development/LICENSE 404s, so the extension matters. Standard wording, and THE COPYRIGHT CHAIN IS THE INTERESTING PART, stacked and all filled in: 'Copyright (c) 2025-2026 Snowflake, Inc.', 'Copyright (c) 2018-2025 Crunchy Data Solutions, Inc.', 'Copyright (c) 2017 OmniTI, Inc.' The project has passed through three companies and is corporate-stewarded rather than a solo effort. · v5.5.0 of 2026-07-22, the release page reading '22 Jul 14:46' with no year and settled by ungh's releases endpoint at 2026-07-22T14:46:50Z. Siblings v5.4.3 of 2026-03-05 and v5.4.2 of 2026-02-17 — three releases in 2026. · Track this in Scout · Share this tool

A PostgreSQL extension that splits one huge table into many child tables by time or by number, creating future ones in advance and retiring old ones on a schedule.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You install it as a database extension and tell it which table to partition and by what — a date column or a number column. It converts the table into PostgreSQL's native declarative partitioning, which means one parent table and many child tables behind it, with the database choosing the right child automatically. It then keeps the set healthy: creating child tables ahead of time so a new month never arrives unprepared, and dropping or detaching old ones according to a retention setting. Maintenance runs either from an optional background worker inside PostgreSQL, so no external scheduler is needed, or from a job you run yourself. It can also undo the work and put the rows back into one table. What it no longer does is trigger-based partitioning: that approach was dropped from version 5.0.1, so an older setup has to be converted first.

Why it matters

Who it suits. Anyone with a PostgreSQL table that grows by date and that nobody ever deletes from — event logs, measurements, order history, anything append-only. The moment it becomes useful is the moment a DELETE FROM ... WHERE created_at < ... starts taking long enough to be frightening. Skip it if your largest table fits comfortably in memory; partitioning adds planning overhead and is not free.

Verdict. Worth half an hour on a copy of the database first, and the retention setting is the part to think about hardest, because dropping a child table is instant and final. The licence file tells a small story worth knowing: the copyright has passed from OmniTI in 2017 to Crunchy Data from 2018, and to Snowflake from 2025, so this is corporate-stewarded rather than a solo side project. It is a maintenance-grade tool rather than a fast-moving one — 330 commits in fourteen years, three releases in 2026 — which is the right shape for something managing a production table. Two practical notes: the background worker needs a line in postgresql.conf and a server restart, and partitioning many children raises the number of locks a single query needs, so the project suggests raising max_locks_per_transaction from the default of 64 to 128.

Stars2,834
LicencePostgreSQL License, read from LICENSE.txt on the default branch 'development' — /blob/development/LICENSE 404s, so the extension matters. Standard wording, and THE COPYRIGHT CHAIN IS THE INTERESTING PART, stacked and all filled in: 'Copyright (c) 2025-2026 Snowflake, Inc.', 'Copyright (c) 2018-2025 Crunchy Data Solutions, Inc.', 'Copyright (c) 2017 OmniTI, Inc.' The project has passed through three companies and is corporate-stewarded rather than a solo effort.
Latestv5.5.0 of 2026-07-22, the release page reading '22 Jul 14:46' with no year and settled by ungh's releases endpoint at 2026-07-22T14:46:50Z. Siblings v5.4.3 of 2026-03-05 and v5.4.2 of 2026-02-17 — three releases in 2026.
Good
  • Uses PostgreSQL's own native partitioning rather than inventing a mechanism.
  • Pre-creates future child tables, so the first day of a new month is not an incident.
  • The optional background worker removes the need for an external scheduler.
Watch for
  • The background worker needs a configuration change and a database restart, and silently does nothing if its database and role settings are missing.
  • The schema it is installed into cannot be changed afterwards, so choose it carefully.
  • 49 open issues, no published performance figures, and turning on row-level security locks everyone out of its own configuration tables until policies exist.
Similar repositories
Install
make install
Screenshots
pgpartman/pg_partman: GitHub preview card
11

xataio/pgstream

💎 hidden gem
pgstream: live copies of a database. Streams rows and schema changes elsewhere.

1,198 stars · Apache-2.0, read from /blob/main/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED — no holder is named anywhere in the file; main.go carries only an SPDX identifier. The fourth such row in this one edition. · v1.5.0 of 2026-09-10, the release page reading '10 Sep 16:55' with no year and settled by ungh's releases endpoint at 2026-09-10T16:55:26Z. A rolling 'nightly' prerelease was published 2026-10-09, so the stable-against-nightly cadence is genuinely live. · Track this in Scout · Share this tool

Streams PostgreSQL changes to another database, a search index, a webhook or a queue, following changes to the table structure as well as to the rows.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You run one command to set it up. It creates a small schema inside the source database holding tables, functions and triggers that record changes to the structure, and it creates a replication slot, which is PostgreSQL's own mechanism for letting a program read the change stream. You can then take an initial snapshot of existing rows, so the destination starts complete. After that a single command streams changes continuously. The source can be PostgreSQL or Kafka; the destination can be another PostgreSQL, OpenSearch or Elasticsearch, a webhook, or Kafka. On the way through, column values can be passed through transformers that mask or anonymise them, which makes it usable for building a safe copy for testing. It also has a standalone snapshot mode for a read-only point-in-time copy. What it does not do: only one Kafka topic is supported, only one PostgreSQL decoding plugin is supported, there is no row-level filtering, and a table with no primary key and no unique NOT NULL column will not replicate at all.

Why it matters

Who it suits. Anyone who keeps a search index alongside a PostgreSQL database and is tired of it drifting out of date, and anyone who needs a masked copy of production data for testing. The structure-change handling is the specific reason to pick this: if your schema changes often, the general-purpose tools make it your problem. Skip it if your schema never changes and you only need rows, because then the larger and better-known tools will serve you better.

Verdict. The most convincing small project in this edition, and a real gap filled rather than a thinner version of something bigger. debezium/debezium at 12,962 stars is the industry default, covers many databases, and is far heavier to run; come here if you are PostgreSQL-only and want one binary. One thing to fix before you start: the README never mentions that PostgreSQL must be configured with wal_level = logical for any of this to work, and without it the first run fails. The project also publishes benchmark results only as an image, so there is no throughput figure to quote. Twenty-four open pull requests on a vendor-run repository is a backlog worth noticing, though 2,085 commits and nightly builds say the work is real.

Stars1,198
LicenceApache-2.0, read from /blob/main/LICENSE, standard and unmodified, and THE COPYRIGHT HOLDER PLACEHOLDER IS UNFILLED — no holder is named anywhere in the file; main.go carries only an SPDX identifier. The fourth such row in this one edition.
Latestv1.5.0 of 2026-09-10, the release page reading '10 Sep 16:55' with no year and settled by ungh's releases endpoint at 2026-09-10T16:55:26Z. A rolling 'nightly' prerelease was published 2026-10-09, so the stable-against-nightly cadence is genuinely live.
Good
  • It follows changes to the table structure, which is the part most tools skip.
  • One binary, four destinations, and transformers for masking data on the way through.
  • A snapshot mode that produces a read-only point-in-time copy without streaming.
Watch for
  • The README omits the wal_level = logical requirement, so the first run fails for a reason it does not explain.
  • A table with no primary key and no unique NOT NULL column will not replicate, silently as far as the documentation goes.
  • No minimum PostgreSQL or Go version is stated anywhere, and its Apache-2.0 licence file names no copyright holder.
Similar repositories
Install
curl -L https://github.com/xataio/pgstream/releases/latest/download/pgstream.linux.amd64 -o pgstream
chmod +x pgstream
sudo mv pgstream /usr/local/bin/
Screenshots
xataio/pgstream: GitHub preview cardxataio/pgstream: Screenshot 1xataio/pgstream: Screenshot 2xataio/pgstream: Screenshot 3
12

darold/ora2pg

💎 hidden gem
ora2pg: leaving Oracle for Postgres. Converts the schema and estimates the work.

1,240 from ungh; api.github.com's ten-week-old snapshot gives 1,224 stars · GPL-3.0, read from /blob/master/LICENSE, standard and unmodified, and the file names no project copyright holder, only the Free Software Foundation boilerplate. · v25.0 of 2025-04-20 — EIGHTEEN MONTHS. The release page reads '20 Apr 15:05' with no year and the year was settled TWICE: ungh's releases endpoint gives 2025-04-20T15:05:16Z and the release notes heading itself reads '2025 04 20 - v25.0'. Prior: v24.3 of 2024-03-28, v24.2 of 2024-03-07, v24.1 of 2023-09-08. MetaCPAN was unreachable on both the release and distribution paths. · Track this in Scout · Share this tool

Reads an Oracle database, writes the PostgreSQL version of its schema and data, and prints an estimate of how many person-days the whole migration would take.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You give it a connection to the Oracle database. It reads the schema — tables, views, indexes, constraints, sequences, stored procedures — and writes PostgreSQL statements to a file. You then load that file with psql yourself; it does not create the objects itself. Data export is the exception: if you also give it a PostgreSQL connection it will load the rows directly, in chunks, 10,000 rows at a time by default. It attempts to convert PL/SQL into PL/pgSQL, Oracle's and PostgreSQL's respective stored-procedure languages. Before any of that, it will produce a migration report: what is in the database, what will convert cleanly, what will not, and an estimate in person-days using a cost unit of five minutes per difficulty point. A project scaffold command writes out a folder with export and import shell scripts ready to edit. What it does not do is finish the job: the README says the PL/SQL conversion is basic and "there's still manual work to do", and partitions are converted using inheritance and triggers rather than PostgreSQL's native partitioning.

Why it matters

Who it suits. Anyone paying for Oracle who has wondered what leaving would cost, and anyone who has been told the migration is impossible and would like a number instead of an opinion. It also suits consultants scoping the same work, which is what the cost estimate exists for. Skip it if you have no Oracle database; everything here is specific to that one migration.

Verdict. Run the assessment report even if you never migrate — it is read-only, it takes about an hour once the Oracle client libraries are installed, and the output is the most useful thing in this edition for anyone in that situation. Note the shape of the project before depending on it: it is fourteen years old with 3,109 commits, its last release was 20 April 2025 and its last code change 28 September 2026, so it is alive and slow rather than finished. About a hundred open issues against essentially one maintainer is the risk to name. The install is the hard part, not the tool: the Oracle client libraries must be installed and two environment variables set before the Perl database driver will even build. dimitri/pgloader at 6,472 stars is the alternative for moving data from several sources, but it has nothing like the cost estimate.

Stars1,240 from ungh; api.github.com's ten-week-old snapshot gives 1,224
LicenceGPL-3.0, read from /blob/master/LICENSE, standard and unmodified, and the file names no project copyright holder, only the Free Software Foundation boilerplate.
Latestv25.0 of 2025-04-20 — EIGHTEEN MONTHS. The release page reads '20 Apr 15:05' with no year and the year was settled TWICE: ungh's releases endpoint gives 2025-04-20T15:05:16Z and the release notes heading itself reads '2025 04 20 - v25.0'. Prior: v24.3 of 2024-03-28, v24.2 of 2024-03-07, v24.1 of 2023-09-08. MetaCPAN was unreachable on both the release and distribution paths.
Good
  • The migration assessment report gives a person-day estimate before you commit to anything, and changes nothing.
  • The README publishes real defaults and limits, which is rare: chunk sizes, sampling counts, exit codes.
  • Fourteen years of handling Oracle's edge cases, which is exactly the knowledge you cannot write yourself.
Watch for
  • Installing it means installing Oracle's own client libraries first and setting ORACLE_HOME and LD_LIBRARY_PATH before building the Perl driver.
  • Configuration directives are separated by a tab character, not spaces, and a repeated single-value directive silently keeps only the last.
  • Partitions convert to inheritance and triggers rather than native PostgreSQL partitioning, and its own documentation gives two different thresholds for when a migration moves up an assessment level.
Similar repositories
Install
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
perl -MCPAN -e 'install DBD::Oracle'
Screenshots
darold/ora2pg: GitHub preview card

Checked, and left out

Nothing to show for this edition. Recording the repositories that were checked and rejected began with Edition No. 4, and every edition from there on has the list.

Share this edition
← PreviousNo. 47Next →
Coming tomorrow

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.