algernon  by xyproto

Self-contained Go web server with Lua scripting and AI integration

created 10 years ago
2,927 stars

Top 16.7% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Algernon is a self-contained, pure-Go web server designed for rapid development and deployment of dynamic web applications. It targets developers seeking a versatile, all-in-one solution that integrates numerous templating engines, scripting languages, and database backends into a single executable, minimizing external dependencies and setup complexity.

How It Works

Algernon leverages Go's concurrency and performance, embedding support for multiple technologies directly. It dynamically serves content based on filenames, prioritizing specific handlers like index.lua for scripting or index.md for Markdown rendering. This approach allows for flexible content creation using various languages and templating systems, with on-the-fly conversion of formats like Sass and Markdown, reducing the need for pre-processing build steps.

Quick Start & Requirements

  • Install: go install github.com/xyproto/algernon@latest
  • Requirements: Go 1.21+
  • Docker: docker run -it -p4000:4000 -v .:/srv/algernon xyproto/algernon (requires creating localhost/index.md)
  • More info: TUTORIAL.md

Highlighted Details

  • Supports HTTP/2, QUIC, and standard HTTP/S.
  • Integrates Lua and Teal for server-side scripting.
  • Offers built-in support for Markdown, Pongo2, Amber, Sass, GCSS, and JSX.
  • Features Ollama integration for LLM interactions.
  • Provides database support for BoltDB, Redis, PostgreSQL, MySQL, and MSSQL.
  • Includes auto-refresh for live development previews.

Maintenance & Community

  • Developed by Alexander F. Rødseth.
  • Active development, with recent releases.
  • Community support channels are not explicitly mentioned in the README.

Licensing & Compatibility

  • License: BSD-3-Clause.
  • Permissive license suitable for commercial use and integration with closed-source projects.

Limitations & Caveats

  • Auto-refresh feature is limited to Linux and macOS.
  • The gopher-lua implementation does not support package.loadlib.
  • QUIC support may require specific browser configurations.
Health Check
Last commit

1 week ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
31 stars in the last 90 days

Explore Similar Projects

Starred by Clément Renault Clément Renault(Cofounder of Meilisearch), John Resig John Resig(Author of jQuery; Chief Software Architect at Khan Academy), and
1 more.

browser by lightpanda-io

0.4%
9k
Headless browser for AI/automation tasks, scraping, and LLM training
created 2 years ago
updated 1 day ago
Feedback? Help us improve.