Skip to content

v0.7.0

Latest

Choose a tag to compare

@pardnchiu pardnchiu released this 06 Oct 08:01
79c33e7

v0.6.0 -> v0.7.0

Summary

Rebrands the project as HakoRun and makes an embedded store the default, moving the previous store behind a build flag. Extends sandboxed execution to macOS and fixes resource caps that never took effect. Documentation is regenerated around the self-hosted FaaS positioning.

翻譯

專案更名為 HakoRun,預設改用內嵌儲存,原儲存後端改由建置旗標啟用。沙箱執行擴展至 macOS,並修正資源上限從未生效的問題。文件依自架 FaaS 定位重新產生。

⚠️ Breaking Changes

Module path renamed to github.com/pardnchiu/HakoRun

Before:

module github.com/pardnchiu/go-faas

After:

module github.com/pardnchiu/HakoRun

Migration:

git remote set-url origin https://github.com/pardnchiu/HakoRun.git
git pull
翻譯

Go module 路徑改為 github.com/pardnchiu/HakoRun;既有 clone 需更新 remote。專案僅含 main 與 internal package,無外部 import 需修改。

Default script store switched from Redis to ToriiDB

Before: every build connected to Redis via REDIS_* and stored scripts there.

After: the default build stores scripts in ToriiDB at ~/.config/pardnchiu/hakorun; Redis is used only when built with -tags redis. Scripts already in Redis are not visible to the default build.

Migration:

# keep using existing Redis data
make build redis    # go build -tags redis -o bin/hako ./cmd/api

# or move to ToriiDB: re-upload each script with POST /upload on the default build
make build
翻譯

預設儲存由 Redis 改為 ToriiDB(~/.config/pardnchiu/hakorun),Redis 僅在 -tags redis 建置時使用;既有 Redis 中的腳本在預設建置下看不到。要沿用 Redis 資料請以 make build redis 建置,否則需在預設建置下重新上傳腳本。

package.json removed; TypeScript dependencies installed manually

Before: npm install in the repo installed esbuild.

After: the repo has no package.json.

Migration:

npm install -g tsx typescript esbuild
npm install esbuild    # in the project root, resolved by the TypeScript wrapper
翻譯

移除 package.json,TypeScript 執行需求改為手動安裝:全域 tsx、typescript、esbuild,以及專案根目錄的本地 esbuild。

Changes

BREAKING

  • Rename the Go module to github.com/pardnchiu/HakoRun and the build output to bin/hako (@pardnio) [81c18d6, 73d5f02]
  • Switch the default script store to ToriiDB behind a shared backend interface; Redis via -tags redis (@pardnio) [81c18d6, 73d5f02]
  • Remove package.json; TypeScript runtime dependencies are installed manually (@pardnio) [3b5ef44]
翻譯
  • Go module 改名為 github.com/pardnchiu/HakoRun,建置產物改為 bin/hako
  • 預設儲存改為 ToriiDB 並抽出共用 backend 介面;Redis 改由 -tags redis 啟用
  • 移除 package.json,TypeScript 執行依賴改為手動安裝

FEAT

  • Add macOS support: sandbox scripts with a sandbox-exec seatbelt profile, with no-op dependency check and slice setup on darwin (@pardnio) [78cfbf7]
翻譯
  • 新增 macOS 支援:以 sandbox-exec seatbelt profile 隔離腳本,darwin 上相依檢查與 slice 建立為 no-op

FIX

  • Name the systemd slice unit hakorun.slice so MAX_CPUS / MAX_MEMORY caps are actually loaded; the old go-faas-slice file lacked the .slice suffix and was ignored by systemd (@pardnio) [81c18d6, 78cfbf7]
翻譯
  • systemd slice 單元改名為 hakorun.slice,讓 MAX_CPUS/MAX_MEMORY 上限確實生效;舊檔 go-faas-slice 缺 .slice 副檔名,systemd 不會載入

ADD

翻譯
  • 新增 Makefile,提供 build/run/test 目標與 redis 切換

CHORE

翻譯
  • 要求 Go 1.25;新增 github.com/pardnchiu/ToriiDB,移除 github.com/joho/godotenv
  • 更新 .gitignore 並移除 cover.png

Scope

  • go.mod, go.sum — BREAKING, CHORE
  • cmd/api/ — BREAKING
  • internal/database/ — BREAKING (database.go, toriidb.go, redis.go, backend_toriidb.go, backend_redis.go)
  • internal/sandbox/ — FEAT, FIX (multiple files)
  • internal/checker/ — FEAT (checker.go, checker_darwin.go)
  • internal/handler/, internal/router.go — BREAKING
  • Makefile — ADD
  • package.json, package-lock.json — BREAKING
  • README.md, doc/ — DOC
  • .gitignore, .env.example, cover.png — CHORE

Generated by SKILL