Releases: VynFi/VynFi-rust
v1.8.0 — full parity with Python SDK master
Bulk catch-up from v1.0.0 to match the Python SDK's v1.8.0 surface. Every Python resource, method, helper, and type is now on the Rust side, verified live against the production API.
Live-verified
- SAP Integration Pack — 27 tables emitted, BSEG→BKPF FK integrity clean
- SAF-T PT export — 3.0 MB OECD 1.04_01 XML, populated header
- Full baseline probe: DS 4.4.x fixes visible (DocRef types, coa_meta, fraud_split, etc.)
New
Resources (5 new): Adversarial, Ai, Fingerprint, Optimizer (6 subcommands), TemplatePacks (CRUD + validate + enrich + categories).
Jobs (10 new methods): analytics, fraud_split, audit_artifacts, list_files (404-retry), download_archive → JobArchive, download_to, stream_ndjson, tune, wait, wait_for_many.
Configs (4 new methods): from_description, from_company, estimate_size, submit_raw.
JobArchive: new type handling zip + managed_blob transparently. Methods: files, find, categories, read, text, json, size, url, extract_to, audit_opinions, key_audit_matters, sap_tables, sap_table, saft_file, coa_meta.
Types: ~650 lines in types.rs — analytics, audit, fraud-split, optimizer, template packs, NL config, AI/adversarial/fingerprint, SAP/SAF-T config, SAP_DEFAULT_TABLES + SAP_ALL_TABLES constants.
Examples: examples/sap_export.rs + examples/saft_export.rs.
Dependencies
- Added
zip = "2"(deflate-only) for JobArchive. reqwestgains theblockingfeature for lazy JobArchive fetches.
Full changelog: CHANGELOG.md
v1.0.0
Full API coverage — 6 new resources
The SDK now covers the complete stable VynFi API surface (12 resources, up from 7).
New resources
client.configs()— save, list, get, update, delete generation configs +validate,estimate_cost,composeclient.credits()—purchase,balance,historyfor prepaid credit managementclient.sessions()—list,create,extend,generate_nextfor multi-period generationclient.scenarios()—list,create,run,diff,templatesfor what-if analysisclient.notifications()—list,mark_readclient.catalog().list_templates()— browse system templates by sector
Other changes
- 30+ new request/response types with correct camelCase serde attributes
- Async + blocking support for all new resources
- 26 mock tests, 31 integration tests — all passing against the live API
See CHANGELOG.md for full details.
v0.2.1
v0.2.0
Changelog
All notable changes to this project will be documented in this file.
[0.2.0] - 2026-04-08
Added
- Credits resource (
client.credits()) —purchase,balance,historyfor prepaid credit pack management. DownloadResponsetype —jobs().download()now returns a presigned URL with expiry instead of raw bytes.VynFiError::Forbiddenvariant for 403 responses.FieldErrorstruct andErrorBody.fieldsfor field-level validation errors.ErrorBodynow includeserror_type,title,request_idfields (RFC 7807).Jobfields:user_id,rows_requested,rows_generated,started_at.SubmitJobResponsefields:object,message.SectorSummaryfields:multiplier,quality_score,popularity.UsageSummary.tierfield.environmentfield onApiKey,ApiKeyCreated, andCreateApiKeyRequest.- Integration test suite (
tests/integration.rs) for all endpoints against a real API.
Changed
jobs().download()returnsDownloadResponse(JSON with presigned URL) instead ofbytes::Bytes.usage().summary()now calls/v1/usage(was/v1/usage/summary).GenerateRequest.formatchanged fromStringtoOption<String>(server defaults to JSON).GenerateRequest::new()now takes asector_slugparameter.ErrorBodyvariants inVynFiErrorare nowBox<ErrorBody>to reduce enum size.
Removed
- Quality resource (
client.quality()) — not in stabilized API. - Webhooks resource (
client.webhooks()) — not in stabilized API. - Billing resource (
client.billing()) — not in stabilized API. jobs().cancel()— no cancel endpoint in API.jobs().stream()— no SSE streaming endpoint in API.catalog().list()andcatalog().get_fingerprint()— no such endpoints in API.- Types:
JobLinks,JobProgress,SseEvent,CatalogItem,Fingerprint,QualityScore,DailyQuality,Webhook,WebhookCreated,CreateWebhookRequest,UpdateWebhookRequest,Subscription,Invoice,PaymentMethod. - Dependencies:
reqwest-eventsource,futures-core,bytes.
[0.1.0] - 2026-03-01
Added
- Initial release with async and blocking clients.
- Resources: jobs, catalog, usage, api_keys, quality, webhooks, billing.
v0.1.0
Initial release
First public release of the VynFi Rust SDK.
Features
- Full coverage of VynFi API resources: Jobs, Catalog, Usage, API Keys, Quality, Webhooks, Billing
- Async client (tokio + reqwest) with automatic retry on 429/5xx
- Blocking client behind
blockingfeature flag - SSE streaming for job progress via reqwest-eventsource
- Typed responses via serde, error hierarchy via thiserror
- MSRV 1.83
Installation
[dependencies]
vynfi = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }Quick start
use vynfi::{Client, GenerateRequest, TableSpec};
#[tokio::main]
async fn main() -> Result<(), vynfi::VynFiError> {
let client = Client::builder("vf_live_...").build()?;
let sectors = client.catalog().list_sectors().await?;
Ok(())
}