Skip to main content

tailsurf/
lib.rs

1#![doc = include_str!("../README.md")]
2
3/// REST, SSE, and WebSocket clients and durable writer types.
4pub mod client;
5/// Stream and link IDs, link secrets, and writer identities.
6pub mod ids;
7/// Stream-link permission parsing and validation.
8pub mod permissions;
9/// TSF read options, REST models, and v1 binary WebSocket protocol types.
10pub mod protocol;
11/// User-provided stream titles.
12pub mod stream_title;
13/// Human-facing stream link parsing and construction.
14pub mod stream_url;
15/// Duplicate suppression and split-record transcript reconstruction.
16pub mod transcript;
17
18pub use client::{
19    AppendAck, AppendReceipt, AppendTicket, DurableWriterOptions, IdempotencyKey,
20    InvalidIdempotencyKey, ListLinksOptions, TsfClient, TsfClientConfig, TsfClientError,
21    TsfProducer, TsfReadSession, TsfSseReadSession, TsfWriteSession, TsfWriter, default_api_origin,
22};
23pub use ids::{
24    ClientWriterId, LinkId, LinkIdError, LinkSecret, LinkSecretError, MAX_LINK_ID_LEN, StreamId,
25    WriterId,
26};
27pub use permissions::{LinkPermissions, PermissionsError};
28pub use protocol::{
29    read::{ReadOptions, ReadStart, ReadStop},
30    rest::{
31        AppendRange, CreateLinkInput, CreateStreamRequest, CreateStreamResponse, InitialStreamLink,
32        ListLinksResponse, MAX_INITIAL_STREAM_LINKS, StreamLinkCredential, StreamLinkSummary,
33        StreamMetadata, UpdateStreamRequest, Visibility,
34    },
35    ws::{
36        MAX_WRITER_IN_FLIGHT_PAYLOAD_BYTES, MAX_WRITER_IN_FLIGHT_RECORDS, WriteSessionOptions,
37        frame::{
38            AppendBatch, AppendRecord, CaughtUpPosition, IntoRecordData, OwnedReadRecord,
39            PartHeader, ReadBatch, ReadRecord, RecordFormat, RecordPayload,
40        },
41    },
42};
43pub use stream_title::{MAX_STREAM_TITLE_CODE_POINTS, StreamTitle, StreamTitleError};