hans: IPv4 Network Stack

[ bsd3, library, networking ] [ Propose Tags ]

HaNS is a lightweight, pure Haskell network stack that can be used for Haskell networking in the context of the HaLVM, or with a Linux tap device. Currently, HaNS supports 802.3, IPv4, ARP, DHCP (partially), ICMP, UDP, and TCP.

Versions [RSS] [faq] 2.1.0.0, 2.4.0.0, 2.4.0.1, 2.5.0.0, 2.6.0.0, 3.0.0.1, 3.0.1, 3.0.2
Dependencies base (==4.*), BoundedChan, bytestring (==0.9.1.*), cereal (==0.3.0.*), communication, containers (>=0.4.0.0 && <0.5.0.0), fingertree (==0.0.1.*), HALVMCore (==1.0.0), hans, monadLib (==3.6.*), old-locale (==1.0.0.*), random (==1.0.0.*), RendezvousLib (==1.0.0), time (>=1.2.0.0 && <1.3.0.0), unix, XenDevice [details]
License BSD-3-Clause
Author Galois Inc., Peng Li, Stephan Zdancewic
Maintainer halvm-devel@community.galois.com
Category Networking
Source repo head: git clone git://src.galois.com/srv/git/HaNS.git
Uploaded by TrevorElliott at 2011-05-24T18:39:59Z
Distributions NixOS:3.0.2
Executables test
Downloads 5810 total (21 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2016-12-28 [all 7 reports]

Modules

  • Data
    • Data.PrefixTree
  • Hans
    • Hans.Address
      • Hans.Address.IP4
      • Hans.Address.Mac
    • Hans.Channel
    • Device
      • Hans.Device.Ivc
      • Hans.Device.Tap
      • Hans.Device.Xen
    • Hans.DhcpClient
    • Hans.Layer
      • Hans.Layer.Arp
        • Hans.Layer.Arp.Table
      • Hans.Layer.Ethernet
      • Hans.Layer.IP4
        • Hans.Layer.IP4.Fragmentation
        • Hans.Layer.IP4.Routing
      • Hans.Layer.Icmp4
      • Hans.Layer.Tcp
        • Hans.Layer.Tcp.Handlers
        • Hans.Layer.Tcp.Monad
        • Hans.Layer.Tcp.Socket
      • Hans.Layer.Timer
      • Hans.Layer.Udp
    • Message
      • Hans.Message.Arp
      • Hans.Message.Dhcp4
      • Hans.Message.Dhcp4Codec
      • Hans.Message.Dhcp4Options
      • Hans.Message.EthernetFrame
      • Hans.Message.Icmp4
      • Hans.Message.Ip4
      • Hans.Message.Tcp
      • Hans.Message.Types
      • Hans.Message.Udp
    • Hans.Ports
    • Hans.Setup
    • Hans.Simple
    • Hans.Utils
      • Hans.Utils.Checksum
  • Network
    • TCP
      • Aux
        • Network.TCP.Aux.Misc
        • Network.TCP.Aux.Output
        • Network.TCP.Aux.Param
        • Network.TCP.Aux.SockMonad
      • LTS
        • Network.TCP.LTS.In
        • Network.TCP.LTS.InActive
        • Network.TCP.LTS.InData
        • Network.TCP.LTS.InMisc
        • Network.TCP.LTS.InPassive
        • Network.TCP.LTS.Out
        • Network.TCP.LTS.User
      • Type
        • Network.TCP.Type.Base
        • Network.TCP.Type.Datagram
        • Network.TCP.Type.Socket
        • Network.TCP.Type.Syscall
        • Network.TCP.Type.Timer

Flags

NameDescriptionDefaultType
bounded-channels

Use bounded channels for message passing

DisabledAutomatic
example

Build the example program

DisabledAutomatic
halvm

Build for the HaLVM

DisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates