Projects /ย wren
git clone https://molodetz.nl/retoor/wren.git
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/using the template from an existing API page.html -
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