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
- Create
manual_src/pages/api/<name>.htmlusing the template from an existing API page - Add entry to
manual_src/data/navigation.yamlunder the API Reference section - Update
prev_page/next_pagein adjacent API pages - Build:
make buildmanual
License
MIT