Releases: xyproto/algernon
Releases · xyproto/algernon
Algernon 1.16.0
New features
- Add support for using AI/LLMs (Ollama) from Lua.
- Add support for
.prompt
files that contains a content-type, a model name, a blank line and a prompt. SeeREADME.md
for more information. - Make it possible to clear the AI cache with
ClearCache()
.
Tutorials and example code
- Add a simple tutorial (
TUTORIAL.md
). - Update the React jsonfile example.
- Update the TODO list example to the latest version of React.
- Update the React + JSX + database example.
Various
- Make small changes to the built-in themes.
- Minor changes to the
alg2docker
script. - Combine several build and run scripts related to docker.
- Require Go 1.21 or later, mostly because of the QUIC dependency.
- Update CI configuration.
- Update the year in the license file.
- Add the loopvar feature to the dockerfiles.
- Use LABEL maintainer in the Dockerfiles.
- Remove some unused code.
- Update dependencies.
Algernon 1.15.5
- Compile with Go 1.21.5 which has "security fixes to the go command, and the net/http and path/filepath packages, as well as bug fixes to the compiler, the go command, the runtime, and the crypto/rand, net, os, and syscall packages." See the Go issue tracker for more details.
- Also display images when viewing a local Markdown document with
algernon -m
. - Fix a typo in the moonscript sample (thanks @testwill).
- Minor improvements to the Makefile and to the form/registration example.
- Update documentation, ref #141, (thanks for reporting @ptman).
- Update dependencies.
- Fix a test.
Algernon 1.15.4
Usability
- Add a newline to the help output (thanks @arimal199).
- Let the
servedir
Lua function check the given arguments.
Security updates
- Compile with Go 1.21 + update the http2 dependency, ref CVE-2023-39325
Dependencies
- Use the
orsinium-labs/enum
package for an enum inlogo_unix.go
. - Remove deprecated
bmizerany/assert
. - Update all dependencies.
Performance
- Use the
dkorunic/betteralign
utility to align struct fields. - Enable profile-guided optimization (new feature in Go 1.21).
General
- Improve the
alg2docker
and benchmark scripts. - Use the
GOEXPERIMENT=loopvar
feature. - Update the GitHub action for Homebrew.
- Update CI configuration.
- Require Go 1.20 or Go 1.21.
- Build the release binaries with Go 1.21.
Algernon 1.15.3
- Support Go 1.21 and drop support for Go 1.19 (thanks @stefanb).
- Enable QUIC support for non-x86_64 macOS, like M1 and M2.
- Fix an issue when building with
-tags=trace
, for benchmarking. - Update the
welcome.sh
script with regard toulimit
andsysctl kern.maxfiles
detection. - Improve the
--help
output and the REPL help. - Let the style for the "Welcome" page be slightly more welcoming.
- Improve the
Makefile
. - Some minor changes to the code.
- Adjust the example server config.
- Update dependencies.
Algernon 1.15.2
- Remove a duplicate word from the
README.md
file (thanks Philipp Gillé / @philippgille). - Serve Algernon web applications (
.alg
files) from memory if/dev/shm
is writable, ref #132 (thanks Dialga / @Dialga). - Switch from
github.com/xyproto/env
togithub.com/xyproto/env/v2
. - Serve
.json
files a tiny bit faster. - Update dependencies.
Algernon 1.15.1
- Switch from
blackfriday
togomarkdown/markdown
. - Add a simple example that uses the
markdown
function. - Update the CI configuration.
- Update dependencies.
- Update documentation.
Algernon 1.15.0
- Compile the release binaries with Go 1.20.4.
- Add a
close()
function, ref #124 (thanks Malcolm Ke Win / @diyism). - Add a shell linter to the CI configuration, ref #120 (thanks Jan Macku / @jamacku).
- Support reverse proxies, ref #131 (thanks Mohamed Abdel Maksoud / @mohamed--abdel-maksoud).
- Look for
handler.lua
in parent directories, ref #95, #112 and #130 (thanks Giulio Lunati / @giuliolunati). - Add initial support for JWT tokens.
- Use
os
andio
instead of the deprecatedioutil
package. - Use
any
instead ofinterface{}
. - Use the new
unix
build constraint. - Use
strings.ReplaceAll
andbytes.ReplaceAll
. - Use
simpleredis/v2
. - Use
math.Round
. - Add an
ulimit
check to thewelcome.sh
script that also works on macOS Ventura. - Format/lint the code with
gofumpt
,golint
andstaticcheck
. - Use the
betteralign
tool, to improve struct field alignment. - Make the code debug/tracing/profiling features optional at compile time, using build tags.
- Fix a typo in one of the examples.
- Update the CI configuration.
- Update dependencies.
- Update documentation.
Algernon 1.14.0
- Compile the release binaries with Go 1.19.
- Improve the documentation (thanks Matt Mc / @tooolbox ).
- Add support for Teal together with a Teal sample (thanks Matt Mc / @tooolbox).
- Fix an issue with how Lua tables were pretty printed in the REPL.
- Fix an issue with conversion from Lua tables to JSON, ref #107, #108 (thanks @linkerlin).
- Fix an issue with the generated directory listing pages, where
%2F
would appear in the URL instead of/
, ref #117. - Follow the advice of these utilities:
go fmt
,golint
,staticcheck
and to some extentfieldalignment
. - Update dependencies.
Algernon 1.13.0
- Add a flag for serving domains with CertMagic and Let's Encrypt
- Add a flag for redirecting from HTTP to HTTPS
- Use
req.Context
sinceCloseNotifier
has been deprecated - Switch to Go 1.18
- Switch from the MIT license to BSD-3
- Fix double drawn frames around syntax highlighted code in Markdown documents
- URL encode links when listing directories
- Use the same directory as the pongo2 template when importing macros, ref #84
- Let plugins continue to run if an optional argument is passed in, ref #64 (otherwise close them)
- Switch from jvatic/goja-babel to wvanw/esbuild, ref #77 (#91)
- Improve JSX-related error messages
- Use yuin/gopher-lua and yuin/gluamapper
- Use a context when running Lua functions and use the background context when creating the Lua pool
- Update the alg2docker and benchmark scripts
- Update the
--help
output - Fix a typo in the "single.alg" example Algernon application
- Update example service and Dockerfiles
- Add a base URL flag for the directory listing (#90 ?)
- Follow the advice of the "fieldalignment" and "staticcheck" utilies
- Fix the
serve2
function so that the registration form example works - Update tests, dependencies, examples and documentation
Algernon 1.12.14
Changes from last release
- Fix a typo in the documentation (thanks Felix Yan)
- Add support for simple MSSQL queries, ref #57
- Improve MSSQL support (thanks Matt Mc)
- Improvements to table mappings in Lua, including changes to gluamapper (thanks Matt Mc)
- Support headers in buffered responses, ref #75 (thanks Matt Mc)
- Improvements to the file upload functionality (thanks Matt Mc)
- Various minor fixes and improvements (thanks Matt Mc)
- Add three new repl commands:
pwd
,serverdir
andserverfile
- Add nicer help output for built-in commands to the repl
- Add a
ServerDir
function for the server configuration Lua script - Fix wasm mimetype issue, ref #82
- Fix the Babl plugin configuration after updating the Babl dependency
- Various improvements to the samples and to the "Welcome" page
- Follow the advice of
go vet
,golint
andstaticcheck
- Support Go 1.16 and Go 1.17 only, for now
- Downgrade fsnotify to v1.4.9 so that building with GOOS=freebsd works again
- Update CI configuration
- Update dependencies
- Update documentation