github.com/yassinebenaid/bunster
v0.14.0
#537 most downloaded on Go modules
yassinebenaid/bunster
What this package is like to depend on
Last release 3 months ago
28 Apr 2026
Ships unpredictably
gaps range from 8 days to 8 months
Some releases are documented
notes for 8 of 15 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
28 releases · first in 2024
1 release in the last 12 months
see the full history below
Release timeline
28 releases · Dec 2024 to Apr 2026Releases
latest 28-
v0.14.1-0.20260428171626-e6cacb463fac28 Apr 2026 pre-releaseNothing published for this version
-
v0.14.1-0.20250825092040-b1386f675f1725 Aug 2025 pre-releaseNothing published for this version
-
v0.14.1-0.20250824162747-b3fb325f140124 Aug 2025 pre-releaseNothing published for this version
-
v0.14.030 Jul 2025Release notes
Open source →What's Changed
- Update VERSION by @uli-heller in #269
- Add filenames and lines to compile errors and some runtime errors by @yassinebenaid in #274
- bump version by @yassinebenaid in #275
- create insallation paths if missing and skip sudo if already root by @yassinebenaid in #276
- Add single-file mode support. by @yassinebenaid in #277
New Contributors
- @uli-heller made their first contribution in #269
Full Changelog: v0.13.0...v0.14.0
-
v0.13.029 Apr 2025Release notes
Open source →What's Changed
- Allow using
breakandcontinuewithin nested scopes. - Add builtin flags parser. learn more
- Support
returnkeyword. - Support
unsetbuiltin command. - Support indexed arrays.
full changelog
- fix: running
bunster getto get packages that already available locally skips writing tobunster.ymlby @yassinebenaid in #255 - allow use of
breakandcontinuein nested scopes by @yassinebenaid in #256 - support the
returnkeyword by @yassinebenaid in #257 - bug fix: comments are not recognized in compounds by @yassinebenaid in #258
- support
unsetkeyword by @yassinebenaid in #259 - support indexed arrays by @yassinebenaid in #261
- support parameter expansion on arrays and positionals by @yassinebenaid in #263
- added builtin flags parser by @yassinebenaid in #264
- Update copyright date by @xplshn in #265
- add brew installation by @yassinebenaid in #266
- cleanup by @yassinebenaid in #267
New Contributors
Full Changelog: v0.12.1...v0.13.0
- Allow using
-
v0.12.111 Apr 2025Release notes
Open source →This release does not change the content. the action job of release v0.12.0 has failed. and docker images has not been published. that is what this release solves.
Full Changelog: v0.12.0...v0.12.1
-
v0.12.011 Apr 2025Release notes
Open source →What's Changed
- Add a package manager 🎉. now you can share and consume modules as libraries. learn more
bunster get github.com/yassinebenaid/hello-bunster@684da09acea05d9351c4c61d4296bc696f729533
- Add support for the
case..instatement. learn morecase foo in fo*) echo foobar;; *) echo baz;; esac
- Support parameter expansion (eg.
${var:-word}...) - New builtin commands:
cd,pwd,which,exit - Fix bug that causes single quotes to break the parser.
- Fix redirections on functions does not get inherited
Full Changelog
- fix: grammar, punctuation and spelling on introduction by @yunz-dev in #235
- runtime: rewrite the command executor by removing unnecessary abstractions and fixing bad function handling by @yassinebenaid in #236
- support
case..instatement by @yassinebenaid in #239 - Fix single quote is parsed specially when it should't causing entire parser to break by @yassinebenaid in #240
- support
exitbuiltin keyword by @yassinebenaid in #241 - add package manager by @yassinebenaid in #242
- package management: update docs by @yassinebenaid in #245
- add
cdandpwdand$PWDbuiltin commands and variables by @yassinebenaid in #246 - Support parameter expansion
${...}by @yassinebenaid in #249 - icons edit by @yassinebenaid in #250
- builtin command
whichby @yassinebenaid in #251 - seperate the e2e tests for consistency by @yassinebenaid in #252
- docs update by @yassinebenaid in #253
Full Changelog: v0.11.0...v0.12.0
- Add a package manager 🎉. now you can share and consume modules as libraries. learn more
-
v0.11.1-0.20250323102328-4a2b6e85193a23 Mar 2025 pre-releaseNothing published for this version
-
v0.11.022 Mar 2025Release notes
Open source →What's Changed
- support modules, you can distribute your code across files. lear more
- support arithmetic expressions
$(()),(())andlet. lear more - fix bugs in embedding
- fix bugs in pipelines
Full changelog
- pipelines: commands within pipeline to run in a sub-shell by @yassinebenaid in #224
- embedding: fix embedding nested paths panics by @yassinebenaid in #225
- Support arithmetic operations by @yassinebenaid in #226
- Support
letkeyword for evaluating arithmetic expressions by @yassinebenaid in #228 - arithmetics: support
for ((...))loop by @yassinebenaid in #229 - add modules support by @yassinebenaid in #231
- Docs update by @yassinebenaid in #233
- cleanup by @yassinebenaid in #234
Full Changelog: v0.10.0...v0.11.0
-
v0.10.013 Mar 2025Release notes
Open source →New Features
- Add support for conditional expressions and commands.
test -v var [ -t 1 ] [[ 10 -gt 20 ]]
- Support static file embedding
@embed main.js embed cat main.js | node embed ls .
- Support
deferkeyword for deferring the execution of a command or group of commands
defer echo foo defer { echo bar } defer ( echo baz )
- Support
shiftbuiltin command for shifting positional arguments - Support
UTF-8encoding
echo "雷卷是一个好程序员!"
- Bunster is now available on nixpkgs. Special thanks to @yunz-dev ❤️
Bug fixes
- fix command substitution causes the entire program to exit when the status is non zero.
- fix a panic when too many commands are present in loops header
Full Changelog
- Bug fix in docs by @yassinebenaid in #192
- Update Docs by @yassinebenaid in #194
- Add pipelines documentation by @yassinebenaid in #196
- add lists documentation by @yassinebenaid in #197
- bug fix in docs by @yassinebenaid in #198
- Add async commands documentation by @yassinebenaid in #200
- Support the
[...],[[...]]andtestbuiltin commands by @yassinebenaid in #193 - test compound: add support for the '-v' operator by @yassinebenaid in #201
- Conditionals: make sure symlinks are followed by @yassinebenaid in #203
- added variables documentation by @yassinebenaid in #205
- conditionals: do not alter the status code before test is done by @yassinebenaid in #206
- Fix: command substitution failures stopes entire program from execution when used in variable assignments by @yassinebenaid in #207
- Asynchronous commands to read input from
/dev/nullby @yassinebenaid in #208 - Fix race-condition in tests by @yassinebenaid in #209
- conditionals: support the negation
!, logical operators-a,-o,&&and||. and grouped expressions by @yassinebenaid in #210 - conditionals: added missing tests by @yassinebenaid in #211
- Docs: added nixpkgs install by @yunz-dev in #213
- Support embedding 🎉 by @yassinebenaid in #212
- embedding: prevent use of invalid patterns in path by @yassinebenaid in #214
- Support
shiftbuiltin command by @yassinebenaid in #215 - Fix error when passing non local paths to
@embedand update docs by @yassinebenaid in #216 - Support
deferkeyword to defer execution of a command or group of commands by @yassinebenaid in #217 - Add
UTF-8support (i18n) by @yassinebenaid in #218 - Docs: add
groups and subshellssection by @yassinebenaid in #219 - fix panic when using more than a command in
whileanduntilloops head by @yassinebenaid in #220 - Docs: add defer section by @yassinebenaid in #221
- release v0.10.0 by @yassinebenaid in #222
Full Changelog: v0.9.0...v0.10.0
-
v0.9.1-0.20250223150204-14b05b232fd823 Feb 2025 pre-releaseNothing published for this version
-
v0.9.023 Feb 2025Release notes
Open source →New Features
- support
forloop - support
localkeyword for declaring local variables - support
exportkeyword for declaring exported variables - support
loadenvbuiltin command to load variables from.envfiles - support
trueandfalsebuiltin commands
Chanelog
- Support
forloop (range) by @yassinebenaid in #177 - Added missing tests by @yassinebenaid in #179
- Fix link to goals/vision in README by @ianwalter in #181
- Support
localvariables by @yassinebenaid in #180 - Support
exportbuiltin by @yassinebenaid in #182 - Fix: function declaration in subshells afects global shell && exiting the program does not give enough time for stream manager to be destroyed by @yassinebenaid in #187
- Fix function's exit code is always zero by @yassinebenaid in #188
- Support
loadenvbuiltin command by @yassinebenaid in #189 - Rewrite documentation by @yassinebenaid in #190
- bump release version by @yassinebenaid in #191
New Contributors
- @ianwalter made their first contribution in #181
Full Changelog: v0.8.0...v0.9.0
- support
-
v0.8.006 Feb 2025Release notes
Open source →New Features
- Add
functionssupport - Support background commands ('&')
- Support status inversion (
! command) - Support
*and@special variables
Changelog
- Add support for asynchronous commands
&by @yassinebenaid in #140 e2e: cover pipelines by @yassinebenaid in #141- Add support for exit code inversion (
!) by @yassinebenaid in #144 - Add
functionssupport by @yassinebenaid in #145 - fix: pipeline ends are no longer proxied because all streams are singleton by @yassinebenaid in #146
- fix: nested functions panic by @yassinebenaid in #147
e2e: cover lists by @yassinebenaid in #148e2e: cover command groups by @yassinebenaid in #149e2e: tests to run concurrently by @yassinebenaid in #151- e2e: implement timeout in tests by @yassinebenaid in #153
- fix: subshell's exit code remanins unchanged by @yassinebenaid in #154
- fix panic when passing environment variables to commands with zero value by @yassinebenaid in #155
- Update README.md by @yassinebenaid in #156
- fix panic on redirections on 'if' compound by @yassinebenaid in #157
- feat: install script by @yunz-dev in #150
- fix panic when declaring functions in pipeline by @yassinebenaid in #158
- General bug fixes regarding functions and compounds by @yassinebenaid in #159
- fix: shadow positional arguments within functions by @yassinebenaid in #160
- Fix: functions to run in same context as outer shell & environment variables passed to functions to be exported by @yassinebenaid in #161
- Allow redirection of
stderrinline by @yassinebenaid in #162 - move stream manager initialization to main by @yassinebenaid in #163
- add checksum verification to installation and simplify redundancy by @yassinebenaid in #164
- make default installation path is .local/bin by @yassinebenaid in #165
- functions exit code to be inherited by @yassinebenaid in #166
- Support for
*and@special variables by @yassinebenaid in #170 - encapsulate entire release workflows by @yassinebenaid in #172
- fix installation path on macos by @yassinebenaid in #173
- Developers guildline by @yassinebenaid in #171
- e2e: handle unhandled case by @yassinebenaid in #175
- Update docs by @yassinebenaid in #176
New Contributors
Full Changelog: v0.7.1...v0.8.0
- Add
-
v0.8.0-pre206 Feb 2025 pre-release -
v0.8.0-pre06 Feb 2025 pre-releaseRelease notes
Open source →New Features
- Add
functionssupport - Support background commands ('&')
- Support status inversion (
! command) - Support
*and@special variables
Changelog
- Add support for asynchronous commands
&by @yassinebenaid in #140 e2e: cover pipelines by @yassinebenaid in #141- Add support for exit code inversion (
!) by @yassinebenaid in #144 - Add
functionssupport by @yassinebenaid in #145 - fix: pipeline ends are no longer proxied because all streams are singleton by @yassinebenaid in #146
- fix: nested functions panic by @yassinebenaid in #147
e2e: cover lists by @yassinebenaid in #148e2e: cover command groups by @yassinebenaid in #149e2e: tests to run concurrently by @yassinebenaid in #151- e2e: implement timeout in tests by @yassinebenaid in #153
- fix: subshell's exit code remanins unchanged by @yassinebenaid in #154
- fix panic when passing environment variables to commands with zero value by @yassinebenaid in #155
- Update README.md by @yassinebenaid in #156
- fix panic on redirections on 'if' compound by @yassinebenaid in #157
- feat: install script by @yunz-dev in #150
- fix panic when declaring functions in pipeline by @yassinebenaid in #158
- General bug fixes regarding functions and compounds by @yassinebenaid in #159
- fix: shadow positional arguments within functions by @yassinebenaid in #160
- Fix: functions to run in same context as outer shell & environment variables passed to functions to be exported by @yassinebenaid in #161
- Allow redirection of
stderrinline by @yassinebenaid in #162 - move stream manager initialization to main by @yassinebenaid in #163
- add checksum verification to installation and simplify redundancy by @yassinebenaid in #164
- make default installation path is .local/bin by @yassinebenaid in #165
- functions exit code to be inherited by @yassinebenaid in #166
- Support for
*and@special variables by @yassinebenaid in #170 - encapsulate entire release workflows by @yassinebenaid in #172
- fix installation path on macos by @yassinebenaid in #173
- Developers guildline by @yassinebenaid in #171
- e2e: handle unhandled case by @yassinebenaid in #175
- Update docs by @yassinebenaid in #176
New Contributors
Full Changelog: v0.7.1...v0.8.0-pre
- Add
-
v0.7.125 Jan 2025Nothing published for this version
-
v0.7.1-0.20250125083528-59dff22d16a625 Jan 2025 pre-releaseNothing published for this version
-
v0.7.1-0.20250117111152-04a16750a00717 Jan 2025 pre-releaseNothing published for this version
-
v0.7.1-0.20250115200251-faeb030f3ea615 Jan 2025 pre-releaseNothing published for this version
-
v0.7.015 Jan 2025Nothing published for this version
-
v0.6.004 Jan 2025Nothing published for this version
-
v0.5.1-0.20250103064752-ace8e3b8fc1903 Jan 2025 pre-releaseNothing published for this version
-
v0.5.1-0.20250102191924-ab259ab607f402 Jan 2025 pre-releaseNothing published for this version
-
v0.5.001 Jan 2025Nothing published for this version
-
v0.4.029 Dec 2024Nothing published for this version
-
v0.3.017 Dec 2024Nothing published for this version
-
v0.2.008 Dec 2024Nothing published for this version
-
v0.0.0-20241217141502-f0df89fa54cd17 Dec 2024 pre-releaseNothing published for this version