Package0.2.1
vortex-ws
Websocket transport, and the door a public one needs
- Version0.2.1
- LicenceBSD-3-Clause
- AuthorHorizon Haskell
- Maintainerlocallycompact@gmail.com
- Pinned byhackage vortex-ws 0.2.1
- Sourcehackage.haskell.org/package/vortex-ws-0.2.1
Modules
8 modules- Vortex.Ws6The websocket mouth of a vortex. Each connection becomes one
- Vortex.Ws.Door10The door a public websocket needs, in front of a host's sessions: a
- Vortex.Ws.Door.Effects3The theory of a door's settings, as a pure effect row: a program only
- Vortex.Ws.Door.Model6The fold: a settings program to the DoorSettings it declares, or the
- Vortex.Ws.Door.Peer5Who a connection is charged to. An IPv4 address is one peer; an
- Vortex.Ws.Door.Rate11Token buckets, one per peer and one for the whole door, and the count
- Vortex.Ws.Door.Settings11The scope a door's settings program is elaborated in. Its export list
- Vortex.Ws.Door.Types10The values a door's settings speak, and the DoorSettings a settings
Description
Produces a Session per websocket connection. Knows nothing about wisps, shells, or evaluation: text frames carry the vortex wire and binary frames a duplexing call's bytes. serveWsWith and serveWsOn hold each connection to limits (a handshake deadline, a cap on a message and a frame, no compression) and to a test of its request head, on a TCP port or a socket already listening. Vortex.Ws.Door is the door a websocket on the open internet needs: socket activation, a handshake deadline, an Origin check refusing with 403, the peer from X-Real-IP with an IPv6 address counted by its /64, session caps per peer and overall, and token buckets, configured by a vortex settings program.
Depends on
11 packages- base-4.22.0.0with GHC
- bytestring-0.12.2.0with GHC
- containers-0.8with GHC
- network-3.2.9.0in this set
- path-0.9.6in this set
- polysemy-1.9.2.0in this set
- stm-2.5.3.1with GHC
- text-2.1.3with GHC
- unix-2.8.8.0with GHC
- vortex-session-0.3.0in this set
- websockets-0.13.0.0in this set