http ✓ approved
Outbound HTTP client — GET/POST/PUT/DELETE/PATCH/HEAD, JSON bodies, custom headers, timeouts, streaming responses. Fiber-aware: while waiting on a slow external API the worker keeps serving other requests.
use http12 modules ship inside the language — no install. Beyond those, the Codlook ecosystem adds installable modules (lk module install, global) and packages (lk install, per-project).
Ship with every LOOK binary. Just use <name> — no installation, no external dependency.
Outbound HTTP client — GET/POST/PUT/DELETE/PATCH/HEAD, JSON bodies, custom headers, timeouts, streaming responses. Fiber-aware: while waiting on a slow external API the worker keeps serving other requests.
use httpSHA-256, HMAC-SHA256, base64 and base64url, hex encode/decode, constant-time compare, secure random bytes/strings, UUID, RS256 sign/verify for JWT.
use cryptoMySQL/MariaDB, PostgreSQL and SQLite — wire protocol implemented inside the language, no external driver. Connection pool, parameterised queries, transactions with commit/rollback and savepoints.
db::connect("mysql://user:pass@host/db")View engine with layout inheritance — {$var} escaped output, {!$var} raw, {#if}…{#else}, {#each $list as $item}…{#empty}, {#extends}, {#block}, {#include}. Keeps HTML out of your .lk files.
use templateSessions backed by files or Redis/RESP2, plus cookie helpers — start / get / set / destroy / regenerate for session rotation after login.
session::start()In-process key/value cache with TTL and a bounded entry cap (LOOK_CACHE_MAX_ENTRIES) so it cannot grow without limit — get / set / has / delete / flush / keys / size.
cache::set("key", $v, 300)Lightweight in-process job queue — push / pop / size / peek / names / clear. Pairs with jobs:: for background workers.
queue::push("mail", $job)Send mail plus an embedded SMTP + IMAP server — ports 25/587/465 and 143/993, STARTTLS, DKIM signing, Maildir delivery. A full mail stack inside the language.
mail::send($to, $subject, $body)Input validation — required, email (254-char cap), integer/numeric with strict full-string parsing ("123abc" is rejected, not silently truncated), min/max and a combined check().
validator::email($v)WebSocket and Server-Sent Events (SSE) — upgrade handling, broadcast, per-connection state. The broadcast snapshot pattern is race-free (verified under TSan).
ws::broadcast($msg)Background jobs — push / next / done / fail / retry / purge / recover / stats. Runs outside the request cycle, survives worker restarts.
jobs::push("queue", $payload)Sandboxed file access — read / put / append / exists / remove / size / store and an upload directory, with separator-bounded containment so paths cannot escape the root.
file::read("config/app.json")Global modules installed with lk module install, then imported with use <name>.
Create, verify and decode JSON Web Tokens — jwt_sign / jwt_verify / jwt_decode, HS256 and HS512, usable with a middleware pattern.
lk module install github.com/codlook/look-modules/jwtuse jwtOfficial Claude (Anthropic) module — ai_chat() for a complete reply, ai_stream() for token-by-token streaming, with system prompts, prompt caching, model and max_tokens options. Pure LOOK, built on the core http:: primitives.
lk module install github.com/codlook/look-modules/aiuse aiPer-project packages installed with lk install, scoped to the app that uses them.
Firebase integration — Firestore CRUD, Authentication (email/password, token verification) and Realtime Database. Access Google Firebase services directly from LOOK.
lk install github.com/codlook/look-packages/firebaseuse "pkg/firebase"iyzico payment integration for Turkish e-commerce — payment creation, 3D Secure flow, refund and cancellation, HMAC request signing. Drops straight into a checkout route.
lk install github.com/codlook/look-packages/iyzicouse "pkg/iyzico"Runtime observability — formats runtime::stats() into Prometheus (/metrics) and JSON, with correct counter/gauge typing so Grafana rate() works. Reads the core counters (requests, 5xx, latency, DB pool, VM-disabled routes). Safe-by-default: importing it registers no routes on its own.
lk install github.com/codlook/look-packages/monitoruse "monitor/monitor.lk"