Skip to content
/ hof Public
forked from hofstadter-io/hof

The High Code Framework (low-code for devs), a flexible data modeling & code generation system

License

Notifications You must be signed in to change notification settings

tmm1/hof

 
 

Repository files navigation

hof - the high code framework

The hof tool tries to remove redundent development activities by using high level designs, code generation, and diff3 while letting you write custom code directly in the output. ( low-code for developers )

  • Users write Single Source of Truth (SSoT) design for data models and the application generators
  • hof reads the SSoT, processes it through the code generators, and outputs directories and files
  • Users can write custom code in the output, change their designs, and regenerate code in any order
  • hof can be customized and extended by only editing text files and not hof source code.
  • Use your own tools, technologies, and practices, hof does not make any choices for you
  • hof is powered by Cue (https://cuelang.org & https://cuetorials.com)

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.

export HOF_VER=0.6.1

# Install (Linux, Mac, Windows)
curl -LO https://github.com/hofstadter-io/hof/releases/download/v${HOF_VER}/hof_${HOF_VER}_$(uname)_$(uname -m)
mv hof_${HOF_VER}_$(uname)_$(uname -m) /usr/local/bin/hof

# Shell Completions (bash, zsh, fish, power-shell)
echo ". <(hof completion bash)" >> $HOME/.profile
source $HOME/.profile

# Show the help text
hof --help

You can always 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.

Documentation

Please see https://docs.hofstadter.io to learn more.

The first-example will take you through the process of creating and using a simple generator

Join us on Slack! https://hofstadter-io.slack.com

Diagram

              ┌ Generator ─────────────────────────────┐
┌ CUE ───┐    │┌────────┐  ┌───────────┐ ┌───────────┐ │
│  your  │◄───┼┤ schema │  │ partials  │ │  statics  │ │
│ design │◄─┐ │└───┬────┘  └─────┬─────┘ └─────┬─────┘ │
└───┬────┘  │ │    ▼             ▼             ▼       │
    │       │ │┌────────┐  ┌───────────┐ ┌───────────┐ │
    │       └─┼┤  genr  │  │ templates │ │  config   │ │
    │         │└───┬────┘  └─────┬─────┘ └─────┬─────┘ │
    │         └────│─────────────│─────────────│───────┘
    │              ▼             │             │
    │     ┌───────────┐          │             │
    │     │           │          │             │
    └────►│    HOF    │◄─────────┘◄────────────┘
          │           │
          └─────┬─────┘
                │
    ┌───────────┼───────────┐
    ▼           ▼           ▼
  ┌───────────────────────────┐
  │     Files and Folders,    │
  │     All the Things        │
  └───────────────────────────┘

About

The High Code Framework (low-code for devs), a flexible data modeling & code generation system

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 94.5%
  • CUE 5.0%
  • Other 0.5%