Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bunster/README.md at master · yassinebenaid/bunster #973

Open
1 task
ShellLM opened this issue Jan 16, 2025 · 1 comment
Open
1 task

bunster/README.md at master · yassinebenaid/bunster #973

ShellLM opened this issue Jan 16, 2025 · 1 comment
Labels
Git-Repo Source code repository like gitlab or gh github gh tools like cli, Actions, Issues, Pages New-Label Choose this option if the existing labels are insufficient to describe the content accurately shell-script shell scripting in Bash, ZSH, POSIX etc shell-tools Tools and utilities for shell scripting and command line operations software-engineering Best practice for software engineering

Comments

@ShellLM
Copy link
Collaborator

ShellLM commented Jan 16, 2025

Bunster

CI
Documentation

Have you ever wished your shell scripts could be faster, more portable, and secure? Bunster brings this to life by transforming your shell scripts into efficient, standalone binaries that are easy to distribute and deploy across platforms (only unix is supported at the moment).

Unlike other tools, Bunster doesn't just wrap your scripts in a binary—it compiles them down to efficient native machine code, leveraging the powerful Go toolchain. This ensures performance, portability, and robustness.

Technically speaking, Bunster in fact is a shell-to-Go Transplier that generates Go source out of your scripts. Then, optionally uses the Go Toolchain to compile the code to an executable program.

Bunster targets bash scripts in particular. The current syntax and features are all inherited from bash. Additional shells will be supported as soon as we release v1.

Goals

In addition to the shell features, We aim to add several custom features to make shell scripts feel like any modern programming language. These features are either supported or are planned to be implemented in future. (consider contributing to help us speed up the development cycle)

  • Different Shells support: Bunster currently aims to be compatible with bash as a starting move. Then additional shells in future.
  • Modules: Something shell scripts lack is a module system, we aim to introduce a module system that allow you to publish and consume scripts as libraries.
  • Static Asset Embedding: This feature allows you to embed a file's content to a variable at build time. (Go has one already)
  • Password and Expiration Lock: Surprisingly, some people have asked for this feature. Basically, It allows you to choose an expiration date at build time. The generated program will not work after that date. Also you can choose to lock the script using a password. Whenever you try to run it, it prompts for the password.

Warning

This project is in its early stages of development, and is not yet ready for production. Not all features are implemented yet. But, plenty of them are. see what features are implemented so far.

Versioning

Bunster follows SemVer system for release versioning. On each minor release v0.x.0, You should expect adding new features. Code optimization and build improvements. On each patch release v0.N.x, you should expect bug fixes and/or other minor enhancements.

Once we reach the stable release v1.0.0, you must expect your bash scripts to be fully compatible with Bunster (there might be some caveats). All features mentioned above to be implemented unless the community agreed on skipping some of them.

Adding support for additional shells is not planned until our first stable release v1. All regarding contributions will remain open until then.

Installation

Checkout the documentation for different ways of installation.

Contributing

Thank you for considering contributing to the Bunster project! The contribution guide can be found in the documentation.

This project is developed and maintained by the public community, which includes you. Anything in this repository is subject to criticism. Including features, the implementation, the code style, the way we manage code reviews, The documentation and anything else in this regard.

Hence, if you think that we're doing something wrong, or have a suggestion that can make this project better. Please consider opening an issue.

Code Of Conduct

In order to ensure that the Bunster community is welcoming to all, please review and abide by the Code of Conduct.

Security

If you discover a security vulnerability within Bunster, please send an e-mail to Yassine Benaid via [email protected]. All security vulnerabilities will be promptly addressed.

Please check out our Security Policy for more details.

License

The Bunster project is open-sourced software licensed under the GPLv3 license.

Suggested labels

{'label-name': 'shell-to-Go', 'label-description': 'A transplier that converts shell scripts into Go source code and executable binaries.', 'gh-repo': 'yassinebenaid/bunster', 'confidence': 56.22}

@ShellLM ShellLM added Git-Repo Source code repository like gitlab or gh github gh tools like cli, Actions, Issues, Pages New-Label Choose this option if the existing labels are insufficient to describe the content accurately shell-script shell scripting in Bash, ZSH, POSIX etc shell-tools Tools and utilities for shell scripting and command line operations software-engineering Best practice for software engineering labels Jan 16, 2025
@ShellLM
Copy link
Collaborator Author

ShellLM commented Jan 16, 2025

Related content

#743 similarity score: 0.91
#932 similarity score: 0.87
#114 similarity score: 0.87
#970 similarity score: 0.87
#885 similarity score: 0.87
#866 similarity score: 0.87

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Git-Repo Source code repository like gitlab or gh github gh tools like cli, Actions, Issues, Pages New-Label Choose this option if the existing labels are insufficient to describe the content accurately shell-script shell scripting in Bash, ZSH, POSIX etc shell-tools Tools and utilities for shell scripting and command line operations software-engineering Best practice for software engineering
Projects
None yet
Development

No branches or pull requests

1 participant