• Stars
    star
    499
  • Rank 88,321 (Top 2 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Framework that joins data models, schemas, code generation, and a task engine. Language and technology agnostic.

hof - the high code framework

Hof is a tool that weaves together data models, code generation, and task engine with CUE. Automate repetitive setup, code, changes, and workflows using your tools. Hof is technology agnostic.

Core Features
code generation data + template = _ (anything) ...any file, technology agnostic
app blueprints consistently bootstrap apps, code, config, and other files
data model define and manage data models, evolve code with them
task engine extensible task and workflow DAG engine
modules composable dependencies for blueprints, models, and generators

how hof works

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.

Learn more about CUE: cuelang.org | cuetorials.com

Documentation

Please see docs.hofstadter.io to learn more.

The getting-started section will take you on a tour of hof. The first-example section shows you how to build and use a generator.

Join us on Slack! https://hofstadter-io.slack.com We are more than happy to answer your questions.

Install or try hof on github

Download hof just once. After that hof will prompt you to update and install new releases as they become available.

You can always find the latest version on our GitHub releases page or use hof to install a specific version of itself with hof update --version vX.Y.Z.

# Homebrew
brew install hofstadter-io/tap/hof

# 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

Contributing & Community

Interested in helping out or hanging out? The best ways to get started are

  1. The Contributing Guild
  2. Joining the Community

Main Commands

hof

hof - the high code framework

  Learn more at https://docs.hofstadter.io

Usage:
  hof [flags] [command] [args]

Main commands:
  create                dynamic blueprints from any git repo
  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                   CUE dependency management based on Go mods

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              open an issue or discussion on GitHub

Flags:
  -h, --help             help for hof
      --inject-env       inject all ENV VARs as default tag vars
  -p, --package string   the Cue package context to use during execution
  -q, --quiet            turn off output and assume defaults at prompts
  -t, --tags strings     @tags() to be injected into CUE code
  -v, --verbosity int    set the verbosity of output

Use "hof [command] --help / -h" for more information about a command.

More Repositories

1

self-driving-desktop

Desktop Automation Framework. Drive your mouse and keyboard with an easy to use language.
Python
576
star
2

frisby

API testing framework inspired by frisby-js
Go
277
star
3

cuetorials.com

Learn you some CUE for a great good!
CUE
114
star
4

cuetils

CLI and library for diff, patch, and ETL operations on CUE, JSON, and Yaml
Go
78
star
5

jumpfiles

get more done with fewer keystrokes
CUE
57
star
6

cuelm

Experiments with CUE on the quest to reimagine devops-ops.
CUE
34
star
7

hofmod-cli

Hofstadter generator for Golang CLIs
Go
25
star
8

cue-examples

Random examples demonstrating cuelang
20
star
9

harmony

Easily test downstream projects before releasing new code
CUE
14
star
10

harmony-cue

Harmony setup for testing CUE based projects
CUE
12
star
11

ghacue

GitHub Actions schema in CUE
CUE
10
star
12

c8s

Cuelang powered Kubernetes package manager
Go
8
star
13

hofmod-server

A hof generator for Golang servers
Go
7
star
14

mvs

A flexible Minimum Version Selection tool and library based on Go mods (MERGED into HOF, please see that project, all commands are the same)
Go
6
star
15

structural

Moved into hof, see this link ->
Go
4
star
16

flow-examples

Examples for hof/flow CUE powered DAG engine
CUE
4
star
17

cinful

Detect if your code is running in CI
Go
3
star
18

hofmod-struct

DSL for generating structs in various languages
Go
3
star
19

_awesome

Awesome List for and by Hofstadter
3
star
20

supacode

Hof generator for a full-stack app, built on NextJS
CUE
2
star
21

demos

demos of the hof cli
Go
2
star
22

data-utils

Common utilities for data (json,yaml,xml,toml) handling (io,type-inference,merge,patch,diff)
Go
2
star
23

homebrew-tap

Homebrew Tap for Hofstadter installables
Ruby
1
star
24

connector-js

JavaScript implementation of the 'connectors' concept. Dynamically merge, filter, and connect your project modules at build, init, or runtime.
JavaScript
1
star
25

kubeplex-server

Backend Go server for Kubeplex
Go
1
star
26

_mrtk

Docs, Tutorials, and Code Samples for the Mixed Reality Toolkit
1
star
27

hofmod-x

Experimental, reusable schemas, datamodels, generators, and flows
1
star
28

_saas

An open source toolset for SaaS operations.
Makefile
1
star
29

hofmod-cuefig

Application configuration using Cue
Go
1
star
30

flows

A collection of reusable and example `hof/flows` by and for the community
1
star
31

hof-starter-app

Starter application for Hofstadter Studios
TypeScript
1
star
32

cue.vim

Vim syntax plugin for Cuelang
Vim Script
1
star
33

old-hof

Replacement coming soon, stay tuned!
Go
1
star
34

hof-docs

Moved to the hof repo
CUE
1
star