[7.28.3] - 2026-10-06
Refactoring
- refactor(forge): share one REST client between GitHub, Gitea and GitLab pagination (#1287)
- refactor(git): share one branch push for the fast-forward and force cases (#1286)
Performance
Binary
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
ferrflow |
20.9ms (-5%) |
21.8ms (+6%) |
4.6ms (+5%) |
4.0ms (+5%) |
4.3ms (+13%) |
15.6 MB |
| mono-100-1k |
ferrflow |
40.4ms (-9%) |
39.0ms (-6%) |
4.7ms (-24%) |
4.0ms (-25%) |
4.1ms (-20%) |
15.6 MB |
| mono-50-5k |
ferrflow |
120.7ms (+42%) |
119.1ms (+44%) |
5.8ms (+5%) |
3.8ms (-3%) |
3.6ms (-5%) |
15.6 MB |
| mono-large |
ferrflow |
454.3ms (-1%) |
454.4ms (-1%) |
9.7ms (-12%) |
6.2ms (-7%) |
5.7ms (-7%) |
17.5 MB |
| mono-medium |
ferrflow |
12.5ms (-39%) |
12.0ms (-46%) |
3.5ms (-27%) |
2.9ms (-36%) |
3.0ms (-30%) |
15.7 MB |
| mono-small |
ferrflow |
9.6ms (+14%) |
9.1ms (+18%) |
3.6ms (+33%) |
3.3ms (+18%) |
3.3ms (+22%) |
13.7 MB |
| single |
ferrflow |
5.2ms (-29%) |
5.3ms (-23%) |
2.8ms (-20%) |
2.3ms (-23%) |
2.6ms (-21%) |
13.9 MB |
Note: every competitor is a Node.js package — none ship a native binary, so this section can only show ferrflow. Cross-tool comparisons live in the Npm section.
Docker
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
ferrflow |
215.7ms (+3%) |
214.3ms (+3%) |
197.9ms (+4%) |
196.6ms (+3%) |
195.3ms (+2%) |
43.7 MB |
| mono-100-1k |
ferrflow |
238.4ms (+4%) |
238.3ms (+5%) |
196.4ms |
191.8ms (-1%) |
196.3ms (+3%) |
42.4 MB |
| mono-50-5k |
ferrflow |
308.1ms (+16%) |
305.5ms (+19%) |
189.6ms (+7%) |
186.5ms (+11%) |
187.1ms (+9%) |
43.4 MB |
| mono-large |
ferrflow |
679.3ms (-1%) |
676.4ms |
196.2ms (+1%) |
197.1ms (+5%) |
193.8ms (+1%) |
43.8 MB |
| mono-medium |
ferrflow |
167.0ms (-9%) |
166.7ms (-10%) |
156.7ms (-7%) |
157.5ms (-4%) |
156.7ms (-8%) |
42.5 MB |
| mono-small |
ferrflow |
201.9ms (+21%) |
201.4ms (+17%) |
195.8ms (+22%) |
192.9ms (+16%) |
195.3ms (+18%) |
43.0 MB |
| single |
ferrflow |
168.1ms (-14%) |
163.2ms (-15%) |
160.1ms (-15%) |
159.6ms (-16%) |
160.7ms (-15%) |
43.0 MB |
Note: no competitor publishes a first-party Docker image that is comparable to ghcr.io/ferrlabs/ferrflow (a single static binary). Wrapping the Node tools in node:lts would only re-time node startup + npm + the tool already measured in the Npm section, so this section is intentionally limited to ferrflow.
Npm
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
changesets |
- |
628.9ms (+1%) |
- |
- |
- |
104.5 MB |
| complex |
commit-and-tag-version |
- |
523.6ms (+3%) |
- |
- |
- |
90.8 MB |
| complex |
ferrflow |
316.1ms (+4%) |
316.6ms (+5%) |
302.3ms (+6%) |
298.6ms (+4%) |
300.4ms (+5%) |
90.8 MB |
| complex |
semantic-release |
- |
1527.1ms (+3%) |
- |
- |
- |
143.6 MB |
| complex |
standard-version |
- |
602.8ms (+1%) |
- |
- |
- |
94.8 MB |
| mono-100-1k |
changesets |
- |
609.3ms (-16%) |
- |
- |
- |
111.0 MB |
| mono-100-1k |
commit-and-tag-version |
- |
499.5ms (-21%) |
- |
- |
- |
92.9 MB |
| mono-100-1k |
ferrflow |
286.8ms (-13%) |
284.5ms (-12%) |
248.0ms (-15%) |
245.3ms (-16%) |
246.5ms (-15%) |
92.8 MB |
| mono-100-1k |
semantic-release |
- |
1384.4ms (-13%) |
- |
- |
- |
160.5 MB |
| mono-100-1k |
standard-version |
- |
586.2ms (-14%) |
- |
- |
- |
97.4 MB |
| mono-50-5k |
changesets |
- |
609.1ms (+30%) |
- |
- |
- |
104.5 MB |
| mono-50-5k |
commit-and-tag-version |
- |
966.0ms (+68%) |
- |
- |
- |
106.8 MB |
| mono-50-5k |
ferrflow |
403.2ms (+52%) |
403.9ms (+52%) |
285.6ms (+52%) |
284.3ms (+54%) |
285.2ms (+54%) |
90.8 MB |
| mono-50-5k |
semantic-release |
- |
2380.0ms (+64%) |
- |
- |
- |
276.1 MB |
| mono-50-5k |
standard-version |
- |
1219.8ms (+85%) |
- |
- |
- |
126.3 MB |
| mono-large |
changesets |
- |
813.5ms |
- |
- |
- |
109.5 MB |
| mono-large |
commit-and-tag-version |
- |
1493.0ms (+1%) |
- |
- |
- |
129.3 MB |
| mono-large |
ferrflow |
782.3ms (+1%) |
785.4ms (+3%) |
297.6ms (+1%) |
302.4ms (+3%) |
301.2ms (+3%) |
92.9 MB |
| mono-large |
semantic-release |
- |
3321.7ms (+2%) |
- |
- |
- |
353.4 MB |
| mono-large |
standard-version |
- |
1883.8ms (+2%) |
- |
- |
- |
162.0 MB |
| mono-medium |
changesets |
- |
381.9ms (-37%) |
- |
- |
- |
104.7 MB |
| mono-medium |
commit-and-tag-version |
- |
300.4ms (-38%) |
- |
- |
- |
93.1 MB |
| mono-medium |
ferrflow |
177.3ms (-37%) |
174.7ms (-38%) |
167.1ms (-37%) |
168.9ms (-37%) |
166.9ms (-38%) |
92.5 MB |
| mono-medium |
semantic-release |
- |
848.2ms (-40%) |
- |
- |
- |
142.5 MB |
| mono-medium |
standard-version |
- |
339.5ms (-40%) |
- |
- |
- |
94.4 MB |
| mono-small |
changesets |
- |
594.6ms (+31%) |
- |
- |
- |
103.4 MB |
| mono-small |
commit-and-tag-version |
- |
507.7ms (+60%) |
- |
- |
- |
90.9 MB |
| mono-small |
ferrflow |
305.6ms (+60%) |
307.2ms (+58%) |
296.0ms (+45%) |
296.7ms (+56%) |
296.8ms (+59%) |
90.9 MB |
| mono-small |
semantic-release |
- |
1468.8ms (+48%) |
- |
- |
- |
134.0 MB |
| mono-small |
standard-version |
- |
556.4ms (+51%) |
- |
- |
- |
93.1 MB |
| single |
changesets |
- |
342.8ms (-32%) |
- |
- |
- |
103.2 MB |
| single |
commit-and-tag-version |
- |
281.1ms (-32%) |
- |
- |
- |
90.6 MB |
| single |
ferrflow |
173.9ms (-30%) |
175.3ms (-30%) |
172.8ms (-30%) |
171.5ms (-30%) |
172.5ms (-30%) |
91.2 MB |
| single |
semantic-release |
- |
807.4ms (-33%) |
- |
- |
- |
134.7 MB |
| single |
standard-version |
- |
317.4ms (-31%) |
- |
- |
- |
91.2 MB |
Install footprint
| Tool |
npm |
binary |
| changesets |
5.0 MB |
— |
| commit-and-tag-version |
9.0 MB |
— |
| ferrflow |
9.0 MB |
9.0 MB |
| release-please |
95.0 MB |
— |
| semantic-release |
69.0 MB |
— |
| standard-version |
21.0 MB |
— |