retoor e689b815ab feat: replace legacy GitHub Actions CI with Gitea workflow supporting debug and release builds
Remove the old .github/workflows/.githubCI.yml that used v2 actions and a single .travis.sh build script for Linux, macOS, and Windows. Add a new .gitea/workflows/ci.yml that builds only on Linux using the wren_cli.make makefile with a matrix of release_64bit and debug_64bit configs, runs Python-based tests with a _d suffix for debug builds, and uploads artifacts named wren-cli-linux-<config>.
2026-01-26 11:34:23 +00:00

Wren-CLI

retoor retoor@molodetz.nl

A command-line interface and REPL for the Wren programming language. Built on libuv for asynchronous I/O with native support for HTTP/HTTPS, WebSockets, TLS, SQLite, JSON, regex, and more.

Prerequisites

  • C compiler (GCC or Clang)
  • Make
  • OpenSSL development libraries
  • Python 3 (for tests)

Build

git clone https://github.com/wren-lang/wren-cli.git
cd wren-cli
make build

Output binary: bin/wren_cli

Platform-Specific Builds

Platform Command
Linux make build
macOS cd projects/make.mac && make
FreeBSD cd projects/make.bsd && gmake

Test

make tests

Run a specific test suite:

python3 util/test.py json

Build Targets

Target Description
make build Release build
make debug Debug build
make clean Clean build artifacts
make tests Build and run all tests
make buildmanual Build documentation to bin/manual/

Usage

bin/wren_cli script.wren    # Execute a script
bin/wren_cli                 # Start the REPL

Modules

Core: io, os, scheduler, timer, net, repl

Extended: json, env, math, base64, datetime, dns, signal, subprocess, crypto, regex, http, tls, sqlite, websocket, jinja, pathlib, tempfile, uuid

Documentation

Building the Manual

make buildmanual

Output: bin/manual/ (open index.html in a browser)

The manual works offline when opened directly via file:// protocol.

Manual Source Structure

manual_src/
  data/
    site.yaml             # Site metadata (name, version)
    navigation.yaml       # Navigation structure and page list
  templates/              # Jinja2 base templates
  pages/                  # Content pages (api/, tutorials/, howto/, etc.)
  static/                 # CSS, JS assets

Adding Documentation for a New Module

  1. Create manual_src/pages/api/<name>.html using the template from an existing API page
  2. Add entry to manual_src/data/navigation.yaml under the API Reference section
  3. Update prev_page/next_page in adjacent API pages
  4. Build: make buildmanual

License

MIT

S
Description
Highly customized version of the wren programming language. It has all the modules that you would expect in a std library including http, websockets, sqlite3 and jinja-like templating engine. The idea is to make it suitable for web development.
Readme
22 MiB
Languages
HTML 50%
C 22.2%
PHP 13.4%
C++ 6%
Makefile 2.9%
Other 5.5%