d953925605d33d9d830a494cedf7e3658bd38dcc
Add new Dataset ORM tutorial page covering CRUD operations, query operators, schema evolution, and JSON field handling. Update navigation.yaml to include the new tutorial in the tutorials section. Enhance markdown module documentation with GitHub Flavored Markdown support details including tables, task lists, and language identifier attributes for syntax highlighting. Update tutorial index page and pagination links to reflect the new tutorial order. Refactor dataset.wren module source to introduce Sql and QueryBuilder classes with soft-delete support and identifier validation.
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
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.
22 MiB
Languages
HTML
50%
C
22.2%
PHP
13.4%
C++
6%
Makefile
2.9%
Other
5.5%