hof
hof copied to clipboard
Framework that joins data models, schemas, code generation, and a task engine. Language and technology agnostic.
hof - the high code framework
hof
combines data models, code generation, and modules
to help you write and maintain large amounts of code.
- data model - define & manage data models - the source of truth
- code generation - data + template = _ (anything) - technology agnostic
- modules - composable data models & generators - an ecosystem
hof
is a CLI tool you will add to your workflows.
It is technology agnostic, captures common patterns and boilerplate,
has modules that span technologies, and continues to work as your application evolves.
- data model management so you can checkpoint, diff, and calculate migrations
- code generation to scaffold consistent code and boilerplate across the stack
- diff3 to support custom code, data model updates, and code regeneration
- modular and composable code generators with dependency management
hof
uses CUE extensively to power the DX and implementation.
There are also several utilities subcommands for
adhoc file generation, data transformations, and
CUE powered scripting.
Install
You will have to download hof
the first time.
After that hof
will prompt you to update and
install new releases as they become available.
You can find the latest version from the
releases page
or use hof
to install a specific version of itself with hof update --version vX.Y.Z
.
# Latest Release
go install github.com/hofstadter-io/hof/cmd/hof@latest
# Latest Commit
go install github.com/hofstadter-io/hof/cmd/hof@_dev
# Shell Completions (bash, zsh, fish, power-shell)
echo ". <(hof completion bash)" >> $HOME/.profile
source $HOME/.profile
# Show the help text
hof --help
Documentation
Please see docs.hofstadter.io to learn more.
The first-example
will take you through the process
of creating and using a simple generator
Several demos in a separate repository
and various hofmod-*
repositories are available for you to use.
Join us on Slack! https://hofstadter-io.slack.com We are more than happy to answer your questions.
Main Commands
hof
hof - the high code framework
Learn more at https://docs.hofstadter.io
Usage:
hof [flags] [command] [args]
Main commands:
datamodel manage, diff, and migrate your data models
gen modular and composable code gen: CUE & data + templates = _
flow run CUE pipelines with the hof/flow DAG engine
fmt format any code and manage the formatters
mod polyglot dependency management based on go mods and MVS
Additional commands:
help help about any command
update check for new versions and run self-updates
version print detailed version information
completion generate completion helpers for your terminal
feedback send feedback, bug reports, or any message
Flags:
-h, --help help for hof
-p, --package string the Cue package context to use during execution
-q, --quiet turn off output and assume defaults at prompts
-v, --verbosity int set the verbosity of output
Use "hof [command] --help / -h" for more information about a command.