{"schema_version":1,"metadata":{"branch":"release","release":"8.0","architecture":"amd64","generated_at":"2026-10-21T02:35:53.703506+00:00","source_url":"https://cdn.openbsd.org/pub/OpenBSD/8.0/packages/amd64/sqlports-7.55.tgz","source_sha256":"393d2bd6f5b23c8ba1809ec63f3e8310d7787d329b7350089609a078eb01a387","package_count":12098,"source_kind":"sqlports"},"package":{"name":"ruby40-websocket-driver-0.7.6","path":"www/ruby-websocket-driver,ruby40","url":"/packages/release/www/ruby-websocket-driver,ruby40/","comment":"implementation of the WebSocket protocol for ruby","homepage":"https://github.com/faye/websocket-driver-ruby","maintainer":"The OpenBSD ports mailing-list <ports@openbsd.org>","description":"This module provides a complete implementation of the WebSocket\nprotocols that can be hooked up to any TCP library. It aims to simplify\nthings by decoupling the protocol details from the I/O layer, such that\nusers only need to implement code to stream data in and out of it\nwithout needing to know anything about how the protocol actually works.\nThink of it as a complete WebSocket system with pluggable I/O.\n\nDue to this design, you get a lot of things for free. In particular, if\nyou hook this module up to some I/O object, it will do all of this for\nyou:\n\n* Select the correct server-side driver to talk to the client\n* Generate and send both server- and client-side handshakes\n* Recognize when the handshake phase completes and the WS protocol\n  begins\n* Negotiate subprotocol selection based on Sec-WebSocket-Protocol\n* Negotiate and use extensions via the websocket-extensions module\n* Buffer sent messages until the handshake process is finished\n* Deal with proxies that defer delivery of the draft-76 handshake body\n* Notify you when the socket is open and closed and when messages arrive\n* Recombine fragmented messages\n* Dispatch text, binary, ping and close frames\n* Manage the socket-closing handshake process\n* Automatically reply to ping frames with a matching pong\n* Apply masking to messages sent by the client\n","description_source":null,"description_unresolved":[],"package_architecture":"amd64","stem":"ruby40-websocket-driver","readme":null,"dependencies":[{"path":"lang/ruby/4.0","type":"library","package_spec":"","url":"/packages/release/lang/ruby/4.0/"},{"path":"www/ruby-websocket-extensions","type":"runtime","package_spec":"STEM->=0.1.0","url":"/packages/release/www/ruby-websocket-extensions/"},{"path":"lang/ruby/4.0","type":"runtime","package_spec":"","url":"/packages/release/lang/ruby/4.0/"},{"path":"www/ruby-websocket-extensions","type":"build","package_spec":"STEM->=0.1.0","url":"/packages/release/www/ruby-websocket-extensions/"},{"path":"lang/ruby/4.0","type":"build","package_spec":"","url":"/packages/release/lang/ruby/4.0/"}],"reverse_dependencies":{"count":2,"url":"/packages/data/98/98dc72db96cb7c8074a8ef1cd92209541d4330659c0ed066731a5242ddeaade2.json"},"categories":["www","lang/ruby"],"flavors":["ruby33","ruby34","ruby40"],"only_for_architectures":["aarch64","amd64","arm","i386","mips64","mips64el","powerpc","powerpc64","riscv64","sparc64","alpha","hppa"],"not_for_architectures":[]}}
