Skip to main content

8 posts tagged with "release"

View All Tags

TeaQL Adds Topcoat Support for Generated Rust Web Applications

· 5 min read
TeaQL Team
Core Team

TeaQL now supports Topcoat as a Rust web application target.

The new rust-web-topcoat target generates a server-rendered Topcoat application around the same TeaQL Rust domain crate used by our other application targets. It does not introduce a second shared core: a domain such as commerce continues to use commerce-core, while its framework-specific application crate is named commerce-web-topcoat.

The most important integration decision is the runtime boundary. Every HTTP request receives an independent TeaQL UserContext. TeaQL runtimes, repositories, executors, pools, and other TeaQL resources are accessed through that context and are never registered in Topcoat's application context.

Spring Boot 4.1.0 and Java 21 in TeaQL's Java Generation Targets

· 3 min read
TeaQL Team
Core Team

TeaQL's generated Java output has moved to a Java 21 baseline, and the Java generation targets now select Spring Boot 4.1.0.

The version change affects generated manifests and the language level available to generated code and application extensions. It does not remove the need to build and test each generated target against the matching TeaQL runtime.

TeaQL 1.0.0 Release Notes

· 3 min read
TeaQL Team
Core Team

We are thrilled to announce the release of TeaQL 1.0.0! This milestone marks the stabilization of our core APIs, major performance improvements, and a completely redefined model-driven development experience across both Rust and Java (Spring Boot) ecosystems.

TeaQL 1.0.0 focuses on API Elegance, Developer Ergonomics, AI-Native Workflows, and Transaction Safety.

TeaQL Rust v0.7.0 Release

· One min read

TeaQL Rust reaches v0.7.0. The crates are published and documented.

Crate Structure

teaql-core // Entity traits, metadata, and core queries
teaql-sql // SQL dialect and AST-to-SQL compiler
teaql-runtime // UserContext, registry, graph writes, checkers, and events
teaql-macros // Derive macro for entity descriptors
teaql-provider-sqlx-postgres // PostgreSQL SQLx provider adapter
teaql-provider-sqlx-sqlite // SQLite SQLx provider adapter
teaql-provider-sqlx-mysql // MySQL SQLx provider adapter
teaql-provider-rusqlite // synchronous SQLite rusqlite provider adapter

Each crate has a standalone readme with examples.

Aggregation Cache

let cache = AggregationCache::new(CacheBackend::Memory)
.namespace("daily_revenue")
.ttl(Duration::from_secs(300));

let revenue: Decimal = cache
.get_or_compute(|| compute_daily_revenue())
.await?;

Namespaced caches prevent key collisions across different aggregations.

SQL Debug Logging

let ctx = UserContext::new()
.with_sql_debug(true);

// Logs: SELECT id, name FROM user_t WHERE age >= ?
// Params: [18]

Debug output shows the final SQL and bound parameters. Toggle per request via UserContext.

Extended Query Expressions

let expr = User::age()
.gte(18)
.and(User::status().in_vec(&["active", "premium"]))
.or(User::role().eq("admin"));

in_vec, between, like, and nested and/or groups are now supported.

v0.7.1 Patch

Quick patch for documentation links. No functional changes.

What's Next

Repository module split and open source cleanup.