You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Rob Muhlestein cbb7b625a4 Add pre-Call initialization and validation 2 years ago
.github Add GitHub sponsorship info 2 years ago
z Add pre-Call initialization and validation 2 years ago
.gitignore Add go.sum.work to gitignore 2 years ago
BUILD Update name of foo to bonzai-example 2 years ago
CONTRIBUTING Add legal stuff 2 years ago
LICENSE Add legal stuff 2 years ago
README.md Move most of README.md into "book" 2 years ago
bonzai.go Fix bonzai.Vars.Del interface 2 years ago
go.mod Update missing dependency to.Words 2 years ago
go.sum Update missing dependency to.Words 2 years ago
go.work.off Fix bug with paragraph trucation, update deps 2 years ago
logo.png Add initial logo art 2 years ago

README.md

🌳 Go Bonzai™ Command Compositor

GoDoc License Go ReportCard

"It's like a modular, multicall BusyBox builder for Go with built in completion and embedded documentation support."

"The utility here is that Bonzai lets you maintain your own personal 'toolbox' with built in auto-complete that you can assemble from various Go modules. Individual commands are isolated and unaware of each other and possibly maintained by other people."

logo

Bonzai was born from a very real need to replace messy collections of shell scripts, wasteful completion sourcing, and OS-specific documentation with a single, stateful, binary composed of commands organized as rooted node trees with a clean, modular, portable, statically-compiled, and dynamically self-documenting design.

There's no better language than Go for such things.

Bonzai gets its name from the fact that Bonzai users are fond of meticulously manicuring their own stateful command trees, built from imported composite commands that they can easily copy and run on on any device, anywhere. Bonzai users can easily share their own commands with others just like they would any other Go module and since any Bonzai command also doubles as a high-level library package, even non-Bonzai users benefit. But where Bonzai really separates itself from anything else ever created is that any Bonzai command branch can be turned into a fully-documented, tab-completing stand-alone or multi-call binary by wrapping it in five lines of code and compiling. Such is the beautiful advantage of their stateful command tree design. There's simply nothing else like it.

Getting Started

  1. Read the book:
  1. Copy or clone the example template:
  1. Get ideas for your own by looking at others

Copyright 2022 Robert S. Muhlestein (mailto:rob@rwx.gg)
SPDX-License-Identifier: Apache-2.0

"Bonzai" and "bonzai" are legal trademarks of Robert S. Muhlestein but can be used freely to refer to the Bonzai™ project https://github.com/rwxrob/bonzai without limitation. To avoid potential developer confusion, intentionally using these trademarks to refer to other projects --- free or proprietary --- is prohibited.