moonbitstack/moonquic/conn does not have a README file
pub struct Client {
tls : Conn
original_dcid : Bytes
scid : Bytes
dcid : Bytes
server_scid : Bytes
token : Bytes
retry_scid : Bytes?
retried : Bool
versions : Array[UInt]
offered : Array[UInt]
version : UInt
sent_version : UInt
constants : Version
salt_dcid : Bytes
negotiated : Bool
initial_rx_other : Keys?
initial_tx : Keys
initial_rx : Keys
hs_tx : Keys?
hs_rx : Keys?
app_tx : Keys?
app_rx : Keys?
suite : Suite
core : Conn
app_crypto_at : UInt64
initial_gone : Bool
handshake_gone : Bool
seen_server_cid : Bool
sender : Sender
streams : Streams
events : Array[Event]
datagrams : Array[Bytes]
key_phase : Bool
rx_phase : Bool
app_tx_secret : Bytes
app_rx_secret : Bytes
phase_start : Int64
confirmed : Bool
next_uni : UInt64
zero_rtt_tx : Keys?
zero_sent : Bool
zero_rejected : Bool
reset_token : Bytes?
offered_ids : Array[(UInt64, Bytes, Bytes)]
dcid_seq : UInt64
reset_tokens : Array[Bytes]
phase : Phase
close_at : Int64
close_frame : Frame?
close_level : Level
last_rx : Int64
last_tx : Int64
idle_timeout : Int64
at : Int64
cfg : Config
host : String
sessions : Sessions?
wall : Int64
peer_params : Bytes
// private fields
}fn Client::new(config : Client, server_name : String, params : Bytes, rand : (Int) -> Bytes, dcid : Bytes, scid : Bytes, wall : Int64, cfg? : Config, resumption? : Remembered) -> Client raisefn ClientEndpoint::connect(self : ClientEndpoint, config : Client, server_name : String, params : Bytes, wall : Int64, dcid? : Bytes, scid? : Bytes, cfg? : Config) -> Bytes raisepub(all) struct Config {
versions : Array[UInt]
idle_timeout : Int64
close_period : Int64
max_datagram : Int64
max_ack_delay : Int64
granularity : Int64
initial_max_data : UInt64
initial_max_stream_data : UInt64
max_frame : UInt64
streams_bidi : UInt64
streams_uni : UInt64
max_datagram_frame_size : UInt64
connection_ids : UInt64
zero_rtt_data : UInt64
zero_rtt_stream_data : UInt64
retry : Bool
max_path_id : UInt64
}pub(all) enum Kind {
OriginalDcid
MaxIdleTimeout
StatelessResetToken
MaxUdpPayload
MaxData
MaxStreamDataBidiLocal
MaxStreamDataBidiRemote
MaxStreamDataUni
MaxStreamsBidi
MaxStreamsUni
AckDelayExponent
MaxAckDelay
DisableActiveMigration
PreferredAddress
ActiveConnectionIdLimit
InitialScid
RetryScid
MaxDatagramFrameSize
InitialMaxPathId
VersionInformation
Other(UInt64)
} derive(Eq, Debug)pub(all) struct Limits {
idle_timeout : UInt64
udp_payload : UInt64
data : UInt64
stream_data_bidi_local : UInt64
stream_data_bidi_remote : UInt64
stream_data_uni : UInt64
streams_bidi : UInt64
streams_uni : UInt64
ack_delay_exponent : UInt64
max_ack_delay : UInt64
active_connection_ids : UInt64
migration : Bool
datagram_frame : UInt64
} derive(Eq, Debug)fn Limits::new(idle_timeout? : UInt64, udp_payload? : UInt64, data? : UInt64, stream_data_bidi_local? : UInt64, stream_data_bidi_remote? : UInt64, stream_data_uni? : UInt64, streams_bidi? : UInt64, streams_uni? : UInt64, ack_delay_exponent? : UInt64, max_ack_delay? : UInt64, active_connection_ids? : UInt64, migration? : Bool, datagram_frame? : UInt64) -> Limitspub struct Path {
challenge : Bytes
validated : Bool
}pub(all) struct PathState {
id : UInt64
dcid : Bytes
lcid : Bytes
validated : Bool
challenge : Bytes
available : Bool
peer_seq : UInt64
heard : UInt64
sent : UInt64
abandoned : Bool
}pub struct Session[A] {
peer : A
cid : Bytes
peer_cid : Bytes
version : UInt
first_version : UInt
constants : Version
initial_rx_other : Keys?
core : Server
sender : Sender
cfg : Config
out : Array[Bytes]
received : Array[(Level, Frame)]
rx : Int64
tx : Int64
packets : Int
validated : Bool
last_rx : Int64
idle_timeout : Int64
phase : Phase
close_at : Int64
close_frame : Frame?
close_level : Level
hs_rx : Keys?
hs_rx_secret : Bytes
hs_tx : Keys?
app_rx : Keys?
app_tx : Keys?
streams : Streams
path : Path
zero_rtt_rx : Keys?
// private fields
}pub struct Token {
address : Bytes
odcid : Bytes
}let amplification : Int64let cid_size : Intfn idle_timeout(ours : Int64, theirs : Int64) -> Int64fn is_stateless_reset(packet : BytesView, token : BytesView) -> Boolfn issue_token(key : Bytes, address : Bytes, odcid : Bytes, now : Int64) -> Byteslet max_path_id : UInt64let min_datagram : Intfn reset_token(key : Bytes, cid : Bytes) -> Bytesfn stateless_reset(token : Bytes, rand : (Int) -> Bytes, min? : Int) -> BytesInstall
Download zipQUIC transport for MoonBit.