Releases: dimiro1/lunar
Releases · dimiro1/lunar
v0.5.3
v0.5.2
v0.5.1
v0.5
Highlights
- adds
lunar-cli, a new command-line client for managing Lunar functions - adds device authorization flow support for API token management
- includes embedded AI skills for CLI usage and Lua function authoring
Documentation
- expands the main README with prerequisites, a first-function walkthrough, CLI auth notes,
llmsusage, and E2E test requirements - adds a contributor-focused CLI README covering code generation, local development, and AI skill installation
- aligns CLI help and docs on the
lunar-clicommand name
Changelog
v0.4
What's New
- Data Tab — New UI tab for browsing and managing stored data (#33)
- Global KV Store — Key-value store accessible across all functions (#25)
- KV List Keys — List all keys in a KV namespace (#29)
- GoReleaser & Docker Hub — Automated GitHub releases and Docker image publishing (#31)
Docker
docker run -p 3000:3000 -v $(pwd)/data:/data dimiro1/lunar:latestThanks to @adamcrossland for the contributions! 🎉
v0.3
v0.3
Features
- Surface abstraction for engine and runner (#20)
- Add delete version endpoint (#19)
- Add the option to save the response body on each request (#18)
Improvements
- Upgrade to Go 1.26 and modernize idioms with
go fix - Remove unused
strPtr,intPtr, andboolPtrtest helpers - Update JS dependencies: Mithril 2.3.8, Monaco 0.55.1, Jasmine 6.0.1
- Update Scalar API reference from 1.32.9 to 1.44.16
- Update Go dependencies
- Add docker target to Makefile
- Add Go Reference and Go Report Card badges
Fixes
- Fix empty state centering in execution history
v0.2
New Features
Router Module - A new router module for building path-based routing in Lua functions:
router.match(path, pattern)- Check if a path matches a patternrouter.params(path, pattern)- Extract path parametersrouter.path(path, params?)- Build a path with the function's base URLrouter.url(path, params?)- Build a full URL including host
Pattern syntax supports :param for capturing segments and * for wildcards.
-- Route matching
router.match("/users/42", "/users/:id") -- true
router.match("/files/a/b/c", "/files/*") -- true (wildcard)
-- Parameter extraction
local params = router.params("/users/42", "/users/:id")
-- params = {id = "42"}
-- URL building
router.path("/users/:id", {id = "42"}) -- "/fn/{functionId}/users/42"
router.url("/users") -- "http://localhost:8080/fn/{functionId}/users"event.relativePath - Access the request path relative to your function (without /fn/{id} prefix).
Router Template - New "Router" template in the function creation wizard demonstrating routing patterns.
Path Input in Test UI - The request builder now allows specifying a custom path for testing routed functions.
Bug Fixes
- Content-Type Header - Fixed issue where the Content-Type header set by the function was not respected in the response.
- RelativePath in Event Logs - Fixed
relativePathnot appearing in execution event logs.
v0.1
🚀 Lunar - First Beta Release
A lightweight, self-hosted Function-as-a-Service platform written in Go with Lua scripting.
Features
Core Platform
- Simple Lua functions with
handler(ctx, event)pattern - HTTP triggers to execute functions via HTTP requests
- Version control for tracking and managing function versions
- Execution history with logging and monitoring
- Key-value storage for persistent state
- Environment variables support
- Function scheduling with cron expressions
Built-in Lua APIs
log- Logging utilities (info, debug, warn, error)kv- Key-value storage (get, set, delete)env- Environment variableshttp- HTTP client (get, post, put, delete)json- JSON encoding/decodingcrypto- Cryptographic functions (md5, sha256, hmac, uuid)time- Time utilities (now, format, sleep)url- URL utilities (parse, encode, decode)strings- String manipulationrandom- Random generatorsbase64- Base64 encoding/decoding
Integrations
- AI chat completions (OpenAI & Anthropic) with request/response logging
- Email integration via Resend API with scheduling support
Web Dashboard
- Monaco Editor with autocomplete and inline documentation
- Maximizable editor view
- Command palette with custom actions
- Language localization support
- Version comparison (diff view)
- Beautiful human-friendly error messages with code context
Deployment
- Single binary with no external dependencies
- Docker support with docker-compose
- Railway-ready deployment configuration
- SQLite database (no external database required)
Developer Experience
- API key authentication (auto-generated or custom)
- Accessibility improvements throughout the UI
- Jasmine frontend tests
- E2E tests with chromedp
- GitHub Actions CI workflow