On this page:
Net2:   Evolved Networking Libraries
8.17.0.6

Net2: Evolved Networking Libraries🔗ℹ

 (require net2) package: net2

The net2 library is a framework for building networked communication protocols. It defines several abstractions for establishing connections to other parties in an abstract network, as well as tools for high- level communication between those parties.

Included in net2 is a full HTTP2 client and server implementation, allowing Racket programs to communicate over TLS-encrypted HTTP2 via TCP connections over the Internet, machine-local UNIX domain sockets, or in-memory pipes within a single Racket process. This functionality is defined across several modules:

  • net2 Provides everything and the kitchen sink.

  • net2/data Spec-compliant definitions of various kinds of networking data, including IP addresses, DNS names, and URIs.

  • net2/transport Defines transports, which abstract over sending and receiving bytes reliably between two networked parties.

  • net2/connector Defines connectors for opening new transports with other parties.

  • net2/listener Defines listeners for accepting requests from other parties to open new transports.

  • net2/system Access to built-in networking provided by the operating system, including TCP connections, UNIX domain sockets, and TLS encrypted communication with OpenSSL.

Source code for this library is avaible on Github and is provided under the terms of the Apache License 2.0.

    1 Networking Data Structures

      1.1 IP Addresses

      1.2 Abstract Registered Names

      1.3 DNS Names

      1.4 UNIX Socket Names

      1.5 Authorities

      1.6 URIs

      1.7 Contract Utilities

    2 Transports

      2.1 Transport Primitives

      2.2 Transport Cleanup and Disposables

    3 Transport Connectors

      3.1 Connector Concepts

      3.2 Connector Primitives

      3.3 Composing and Extending Connectors

    4 Transport Listeners

    5 Operating System Networking