ytsaurus-api 0.3.0

The transport-independent YTsaurus client interface, implemented over HTTP and over the RPC proxy
Documentation
# Changelog

All notable changes to `ytsaurus-api` are recorded here.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
this crate follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

This crate is **pre-release**. It is the interface both transports implement, it
has not settled, and it is the one thing in this workspace that is expensive to
change afterwards — the version is 0.x and the API may change in a patch
release.

## 0.3.0 - 2026-08-16

First release of the crate: the **transport-independent** YTsaurus client
interface, and the row model both transports speak.

Published, as **pre-release**, by the human decision Hard rule 1 asks for. What
the publish buys is `ytsaurus-rpc` and `ytsaurus-client`'s `create_client` /
`create_rpc_client`, which return this crate's `TableClient` and could not reach
crates.io while this was `publish = false`.

- **Added** `TableClient`, the interface an HTTP client and an RPC client both
  implement, so choosing a transport is one line and nothing below it changes.
  This mirrors `yt/yt/client/api` in the C++ client, where the same split is
  what lets a caller be written once and run over either.
- **Added** the row model the two transports share — values, rows and the
  unversioned row representation — so a row does not have to be translated
  between them.
- **Added** the error type the interface returns, including `Unsupported`, which
  is how a transport says that a capability exists in the API and not in it.
  Tablet transactions over HTTP are the case that made it necessary: they are
  sticky to the proxy that created them, and an HTTP client routes each request
  independently.