Skip to content

Releases: xyproto/algernon

Algernon 1.17.1

13 Jul 12:52
Compare
Choose a tag to compare

Platform compatibility

  • Patch the pingcap/tidb dependency so that Algernon still compiles for ARM 6 and ARM 7.

Ollama / LLMs

  • Add the oc:distance() Lua method for finding the distance between two LLM prompts.
  • Let the embeddedDistance Lua function take a 3rd argument: euclidean, manhattan, chebyshev, hamming or cosine.
  • Improve the image description example.

Markdown

  • Improve how images are served when serving a single Markdown document.
  • Fix the double opening of the browser when both -m and -o are specified.

Various

  • Also cache .webp images, if caching of images is enabled.
  • Update dependencies.
  • Update documentation.

Algernon 1.17.0

26 Jun 15:25
Compare
Choose a tag to compare
  • Add three new Ollama-related functions: base64EncodeFile (base64-encode a given file), describeImage (use Ollama and ie. the llava-llama3 model to describe a base64-encoded image) and embeddedDistance (given two embeddings, try to find how similar they are).
  • Serve HTTP with fasthttp (ref #4, thanks for the feature request @iMaxopoly)
  • Add a sanhtml function for sanitizing HTML.
  • Add experimental support for mathematical formulas in Markdown using MathJax (ref #150, thanks for the feature request @xjl456852).
  • Add an example for uploading and describing images with Ollama and the llava-llama3 model.
  • Add an example that renders mathematical formulas.
  • Fix an issue with inserting JS into HTML.
  • Improve the "pretty error page" that appears if there is an error in a Lua script.
  • Make it possible to ignore files in a directory listing (ref #149, thanks for the feature request @alpharde).
  • Improve how favicons are handled.
  • Add a base64 method to UploadedFile objects.
  • Try avoiding runtime.GOOS and detect most features at compile time instead.
  • Use two atomic.Bool variables instead of a mutex for keeping track of how traffic is being served.
  • Use github.com/pkg/browser for opening URLs in a browser.
  • Import logrus as "logrus" instead of as "log".
  • Use strconv.FormatInt instead of fmt.Sprintf whenever possible.
  • Update the Teal example.
  • Follow the advice of golint.
  • Let some variables be constants instead.
  • Remove GOEXPERIMENT=loopvar since it is no longer needed.
  • Compile the release binaries with Go 1.22.4.
  • Update documentation.
  • Update dependencies.

Algernon 1.16.0

22 Feb 15:11
Compare
Choose a tag to compare

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. See README.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

06 Dec 09:19
Compare
Choose a tag to compare
  • 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

16 Oct 14:52
Compare
Choose a tag to compare

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

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

10 Aug 06:58
Compare
Choose a tag to compare
  • 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 to ulimit and sysctl 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

03 Jun 12:44
Compare
Choose a tag to compare
  • 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 to github.com/xyproto/env/v2.
  • Serve .json files a tiny bit faster.
  • Update dependencies.

Algernon 1.15.1

17 May 23:35
Compare
Choose a tag to compare
  • Switch from blackfriday to gomarkdown/markdown.
  • Add a simple example that uses the markdown function.
  • Update the CI configuration.
  • Update dependencies.
  • Update documentation.

Algernon 1.15.0

17 May 18:40
Compare
Choose a tag to compare
  • 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 and ioinstead of the deprecated ioutil package.
  • Use any instead of interface{}.
  • Use the new unix build constraint.
  • Use strings.ReplaceAll and bytes.ReplaceAll.
  • Use simpleredis/v2.
  • Use math.Round.
  • Add an ulimit check to the welcome.sh script that also works on macOS Ventura.
  • Format/lint the code with gofumpt, golint and staticcheck.
  • 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

04 Aug 17:37
Compare
Choose a tag to compare
  • 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 extent fieldalignment.
  • Update dependencies.