All Projects → wandercn → hotbuild

wandercn / hotbuild

Licence: other
a cross platform hot compilation tool for golang

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to hotbuild

Air
☁️ Live reload for Go apps
Stars: ✭ 5,257 (+2804.42%)
Mutual labels:  tools, live-reload, build-tool, watcher
Pi Builder
Extensible tool to build Arch Linux ARM for Raspberry Pi on x86_64 host using Docker
Stars: ✭ 31 (-82.87%)
Mutual labels:  builder, build-tool
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+283.98%)
Mutual labels:  builder, build-tool
Zeus
An Electrifying Build System
Stars: ✭ 176 (-2.76%)
Mutual labels:  builder, build-tool
Systemjs Hot Reloader
reloads your modules as needed so that you can have satisfyingly fast feedback loop when developing your app
Stars: ✭ 215 (+18.78%)
Mutual labels:  tools, hot-reload
Phulp
The task manager for php
Stars: ✭ 294 (+62.43%)
Mutual labels:  builder, watcher
Nginx Builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 123 (-32.04%)
Mutual labels:  builder, build-tool
Pundle
👾 peaceful bundles - js bundler, built from the ground up for speed and extensibility
Stars: ✭ 354 (+95.58%)
Mutual labels:  build-tool, hot-reload
makestudio
Setup your Delphi Environment very easily - build your projects with more comfort
Stars: ✭ 43 (-76.24%)
Mutual labels:  builder, build-tool
Nginx-builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 143 (-20.99%)
Mutual labels:  builder, build-tool
systemjs-tools
(dev)tools for working with SystemJS
Stars: ✭ 41 (-77.35%)
Mutual labels:  build-tool, hot-reload
arelo
a simple auto reload (live reload) utility
Stars: ✭ 54 (-70.17%)
Mutual labels:  live-reload, watcher
Instapack
All-in-one TypeScript and Sass compiler for web applications! 📦 🚀
Stars: ✭ 131 (-27.62%)
Mutual labels:  build-tool, hot-reload
Crossbuild
🌍 multiarch cross compiling environments
Stars: ✭ 632 (+249.17%)
Mutual labels:  builder, build-tool
Realize
Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.
Stars: ✭ 4,162 (+2199.45%)
Mutual labels:  build-tool, watcher
Forgemodbuilder
Build, setup, update and refresh your modding environment!
Stars: ✭ 37 (-79.56%)
Mutual labels:  builder, build-tool
universal-hot-reload
Hot reload client and server webpack bundles for the ultimate development experience
Stars: ✭ 79 (-56.35%)
Mutual labels:  live-reload, hot-reload
flhooks
React like Hooks implementation for Flutter.
Stars: ✭ 38 (-79.01%)
Mutual labels:  builder, hot-reload
gobuild
Go 语言热编译工具
Stars: ✭ 49 (-72.93%)
Mutual labels:  fsnotify, watcher
awesome-bookmarks
书签「利器」收集 🍪🍿 Wiki 在线阅读👉
Stars: ✭ 45 (-75.14%)
Mutual labels:  tools

hotbuild

GitHub release (latest SemVer) Released API docs Build Go Report Card Lines of code Downloads of releases Languages GitHub go.mod Go version (subdirectory of monorepo)

A cross platform hot compilation tool

By monitoring the modification of the project directory file, the recompilation and running are automatically triggered. Running directory and monitoring change directory can be different. Monitor the file modification in all recursive subdirectories under the project path.

Hotbuild

Install

go get -u github.com/wandercn/hotbuild@latest 

Initialize

wander$ cd $your_project_dir/
wander$ hotbuild initconf
2021/07/28 11:10:03 create config file: .hotbuild.toml

Run

wander$ cd $your_project_dir/
wander$ hotbuild run
 _   _  ___ _____   ____  _   _ ___ _     ____
| | | |/ _ \_   _| | __ )| | | |_ _| |   |  _ \
| |_| | | | || |   |  _ \| | | || || |   | | | |
|  _  | |_| || |   | |_) | |_| || || |___| |_| |
|_| |_|\___/ |_|   |____/ \___/|___|_____|____/ v1.0.5, built with Go 1.16.5

.............................. ( Start rebuilding ) .................................
.............................. [ Build successfully ] ...............................
.............................. { Start running } ....................................
2021/07/06 09:56:26.913 [I] [asm_amd64.s:1371]  http server Running on http://0.0.0.0:8080
2021/07/06 09:56:26.913 [I] [asm_amd64.s:1371]  Admin server Running on :8088

Custom configuration

Auto create default configuration file in $your_project_dir/.hotbuild.toml,you can modify the configuration yourself.

wander$ cd $your_project_dir/
wander$ cat .hotbuild.toml
buildcmd = "go build -o ./tmp_bin"
excludedir = [".git", "tmp", "docs", "vendor"]
projectdir = "/Users/apple/workspace/src/example.com/"
runcmd = "./tmp_bin"

en zh-cn
buildcmd Compile command 编译命令
excludedir Exclude tracked folders 排除跟踪的文件夹
projectdir Project directory to track 需要跟踪的项目目录
runcmd Run command 运行命令

FAQ

  1. the "Too many open files" error of MacOSX
# maxfiles is 256 too small.

wander$ launchctl limit
  cpu         unlimited      unlimited
  filesize    unlimited      unlimited
  data        unlimited      unlimited
  stack       8388608        67104768
  core        0              unlimited
  rss         unlimited      unlimited
  memlock     unlimited      unlimited
  maxproc     2784           4176
  maxfiles    256           10240

# change maxfiles to 4096.

wander$ sudo launchctl limit maxfiles 4096 unlimited
wander$ launchctl limit
  cpu         unlimited      unlimited
  filesize    unlimited      unlimited
  data        unlimited      unlimited
  stack       8388608        67104768
  core        0              unlimited
  rss         unlimited      unlimited
  memlock     unlimited      unlimited
  maxproc     2784           4176
  maxfiles    4096           10240

remind:

Some terminal modifications cannot take effect immediately and need to be restarted, such as iterm2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].