name: hans version: 2.1.0.0 cabal-version: >= 1.8 license: BSD3 license-file: LICENSE author: Galois Inc., Peng Li, Stephan Zdancewic maintainer: halvm-devel@community.galois.com category: Networking synopsis: IPv4 Network Stack build-type: Simple description: 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. source-repository head type: git location: git://src.galois.com/srv/git/HaNS.git flag bounded-channels default: False description: Use bounded channels for message passing flag example default: False description: Build the example program flag halvm default: False description: Build for the HaLVM library if(flag(halvm)) build-depends: XenDevice, communication exposed-modules: Hans.Device.Xen, Hans.Device.Ivc else build-depends: unix include-dirs: cbits c-sources: cbits/tapdevice.c exposed-modules: Hans.Device.Tap if flag(bounded-channels) build-depends: BoundedChan cpp-options: -DBOUNDED_CHANNELS ghc-options: -Wall hs-source-dirs: src build-depends: base == 4.*, cereal == 0.3.*, bytestring == 0.9.1.*, containers >= 0.4.0.0 && < 0.5.0.0, monadLib == 3.6.*, time >= 1.2.0.0 && < 1.3.0.0, fingertree == 0.0.1.*, random == 1.0.0.* exposed-modules: Data.PrefixTree, Hans.Address, Hans.Utils.Checksum, Hans.Layer, Hans.Ports, Hans.Setup, Hans.Utils, Hans.Channel, Hans.DhcpClient, Hans.Simple, Hans.Layer.Tcp, Hans.Layer.Arp.Table, Hans.Layer.Tcp.Handlers, Hans.Layer.Tcp.Monad, Hans.Layer.Tcp.Socket, Hans.Layer.IP4, Hans.Layer.Udp, Hans.Layer.Arp, Hans.Layer.IP4.Routing, Hans.Layer.IP4.Fragmentation, Hans.Layer.Timer, Hans.Layer.Ethernet, Hans.Layer.Icmp4, Hans.Message.Tcp, Hans.Message.Types, Hans.Message.Udp, Hans.Message.Ip4, Hans.Message.EthernetFrame, Hans.Message.Arp, Hans.Message.Dhcp4Codec, Hans.Message.Dhcp4, Hans.Message.Dhcp4Options, Hans.Message.Icmp4, Hans.Address.Mac, Hans.Address.IP4, Network.TCP.Aux.SockMonad, Network.TCP.Aux.Param, Network.TCP.Aux.Misc, Network.TCP.Aux.Output, Network.TCP.LTS.User, Network.TCP.LTS.Out, Network.TCP.LTS.InPassive, Network.TCP.LTS.InActive, Network.TCP.LTS.InMisc, Network.TCP.LTS.In, Network.TCP.LTS.InData, Network.TCP.Type.Socket, Network.TCP.Type.Syscall, Network.TCP.Type.Datagram, Network.TCP.Type.Base, Network.TCP.Type.Timer executable test if flag(example) buildable: True else buildable: False if(flag(bounded-channels)) build-depends: BoundedChan cpp-options: -DBOUNDED_CHANNELS main-is: test.hs other-modules: WebServer ghc-options: -Wall hs-source-dirs: example build-depends: base == 4.*, cereal == 0.3.0.*, bytestring == 0.9.1.*, containers >= 0.4.0.0 && < 0.5.0.0, monadLib == 3.6.*, time >= 1.2.0.0 && < 1.3.0.0, old-locale == 1.0.0.*, hans if flag(halvm) build-depends: XenDevice == 1.0.0, RendezvousLib == 1.0.0, HALVMCore == 1.0.0, communication == 1.0.0 else ghc-options: -threaded