Blog
- Varyk 0.9.0: errors in your editor
varyk lsp brings the compiler's errors and fixes into VS Code, Zed, and any editor that speaks the Language Server Protocol. A package's varyk-std line now names the oldest varyk it needs, so a new varyk no longer breaks published packages. Rust 1.88 is the minimum.
- varyk-mongo 0.1.0: MongoDB for Varyk
varyk-mongo, the official Varyk package for MongoDB, over the official mongodb crate: typed documents from your structs, queries in MongoDB's own syntax with the values beside the text, native BSON dates, ids, and binaries, aggregation, indexes, and transactions. With it, varyk-sql 0.4.0 takes $1 on every database, Varyk 0.8.1 adds what the package needs, and 0.8.2 adds varyk add mongo.
- Varyk 0.8.0: time, ids, and bytes
Milestone 5c adds three built-in types: Time, a point in time in UTC; Uuid, time-ordered by default; and Bytes, base64 in JSON. varyk-sql 0.3.0 stores them as native columns, and varyk-http 0.2.0 reads times and ids from routes and sends and receives bytes.
- varyk-http 0.1.0: HTTP for Varyk
varyk-http, the official Varyk package for HTTP, ships with Varyk 0.7.0: a server on axum and tower-http whose routes the compiler checks, safe defaults, errors that never leak, hooks, WebSockets, server-sent events, uploads, a client on reqwest, metrics, and tests without a port.
- Varyk 0.7.0: routes the compiler checks
Milestone 5b4 is the compiler side of the HTTP package varyk-http: routes and hooks on its app, each route checked against its handler by varyk check, an optional HTTP status on Error, app.request for tests, two new facade shapes, and varyk add http sql. varyk-http 0.1.0 and varyk-sql 0.2.0 ship with it.
- varyk-sql 0.1.0: SQL databases for Varyk
varyk-sql, the official Varyk package for SQLite, Postgres, and MySQL on sqlx, ships with Varyk 0.6.0: connect, migrate, query into your structs, write in transactions, and test on in-memory SQLite, with the query text literal, so a query built from input does not compile.
- Varyk 0.6.0: facades for packages
Milestone 5b3 lets a package's .rs facade read a result into whatever type the caller names, take any number of values, and take only text written in the program, and adds pub use and varyk add sql: the compiler side of the database package varyk-sql, whose first release ships with it.
- Varyk 0.5.0: packages
Milestone 5b2 lets Varyk code use a Varyk package by its key in Cargo.toml, to any depth, builds every package from its .vr sources without running a build script or shipped Rust, removes build.rs, the stub, and varyk emit, and redraws milestone 5 around packages.
- Varyk 0.4.0: async functions and tasks
Milestone 5b1 adds async fn and .await on a built-in multi-threaded runtime, calls that start tasks without a spawn, Task::all and Task::all_settled, Shared for a value many tasks read, and time::sleep.
- Varyk 0.3.0: data, config, logging, and tests
Milestone 5a adds varyk-std and a built-in Error, JSON with attributes, configuration from the environment and .env, logging, and varyk test, and makes parse return a Result.
- Varyk 0.2.0: closures, iterators, and patterns
Milestone 4 adds closures as the arguments of built-in calls, iterator chains, if let and while let, nested, literal, and range patterns, HashMap, as, derived clone and ==, and getters that return part of their value with no copy.
- Varyk 0.1.0: packages and interop
Milestone 3 makes Varyk code a Cargo package: Cargo dependencies through .rs facades, nested modules, use, private fields, Rust structs and enums imported from .rs files, and publishing to crates.io.
- Varyk 0.0.2: enums, matching, methods, and collections
Milestone 2 makes Varyk able to express a real small program: enums and match, for, methods, Option, Result, Vec, ?, and format!, with the borrow-by-default rules unchanged.
- Announcing Varyk 0.0.1
The first release of Varyk, a language for backend services that compiles to Rust: a compiler that proves the approach on six small programs and generates readable Rust.
- Why I built Varyk
The languages I built backend services in before Varyk, what each of them got right, and the one thing none of them gave me.