name: socket version: 0.3.0.1 x-revision: 1 synopsis: A portable and extensible sockets library. description: __Motivation__ . This library aims to expose a minimal and platform-independant interface for POSIX compliant networking code. . __Implementation Philosophy__ . - Every operation and every flag exposed should be supported with same semantics on every platform. If this cannot be guaranteed it should be supplied by another (extension) package. Examples for things that have been ripped out of this library are: Unix sockets, SCTP, vectored IO (for now). . - Absolutely no conditional export. . - No `#ifdef` madness in the Haskell sources. The Haskell binding code uses the FFI to reference the platform's native networking functions. If they are not Posix compliant (i.e. under Windows) an level of indirection is introduced to write an Posix compliant equivalent in C using whatever the plaform specific building blocks are. . __Platform Support__ . /Linux/ . Working. . /BSD/ . Unknown. Should work. Please report if not. . /MacOS/ . Unknown. Please report if you have a Mac. . /Windows/ . Unfinished (problem with non-blocking IO). . Aim: Support Windows7 or higher. Don't have dependencies on autotools, just Haskell Platform with MinGW should suffice. . /Android/ . Unknown. Should be supported. Please get in touch if you plan to use it. license: MIT license-file: LICENSE author: Lars Petersen maintainer: info@lars-petersen.net category: System, Network build-type: Simple cabal-version: >=1.10 homepage: https://github.com/lpeterse/haskell-socket bug-reports: https://github.com/lpeterse/haskell-socket/issues tested-with: GHC==7.10.1, GHC==7.8.3 extra-source-files: README.md CHANGELOG.md include/hs_socket.h include/hs_socket_win32.h include/hs_socket_posix.h cbits/hs_socket_win32.c cbits/hs_socket_posix.c library exposed-modules: System.Socket , System.Socket.Family , System.Socket.Family.INET , System.Socket.Family.INET6 , System.Socket.Type , System.Socket.Type.RAW , System.Socket.Type.DGRAM , System.Socket.Type.STREAM , System.Socket.Type.SEQPACKET , System.Socket.Protocol , System.Socket.Protocol.UDP , System.Socket.Protocol.TCP , System.Socket.Unsafe other-modules: System.Socket.Internal.FFI , System.Socket.Internal.Event , System.Socket.Internal.Socket , System.Socket.Internal.Exception , System.Socket.Internal.Msg , System.Socket.Internal.AddrInfo build-depends: base >= 4.7 && < 4.9 , bytestring < 0.11 hs-source-dirs: src build-tools: hsc2hs default-language: Haskell2010 ghc-options: -Wall include-dirs: include install-includes: hs_socket.h if os(windows) c-sources: cbits/hs_socket_win32.c extra-libraries: ws2_32 cpp-options: -DFFI_SOCKET="hs_socket" -DFFI_SOCKET_SAFETY=safe -DFFI_BIND="hs_bind" -DFFI_BIND_SAFETY=safe -DFFI_LISTEN="hs_listen" -DFFI_LISTEN_SAFETY=safe -DFFI_CLOSE="hs_close" -DFFI_CLOSE_SAFETY=safe -DFFI_ACCEPT="hs_accept" -DFFI_ACCEPT_SAFETY=safe -DFFI_CONNECT="hs_connect" -DFFI_CONNECT_SAFETY=safe -DFFI_SEND="hs_send" -DFFI_SEND_SAFETY=safe -DFFI_SENDTO="hs_sendto" -DFFI_SENDTO_SAFETY=safe -DFFI_SENDMSG="hs_sendmsg" -DFFI_SENDMSG_SAFETY=safe -DFFI_RECV="hs_recv" -DFFI_RECV_SAFETY=safe -DFFI_RECVFROM="hs_recvfrom" -DFFI_RECVFROM_SAFETY=safe -DFFI_RECVMSG="hs_recvmsg" -DFFI_RECVMSG_SAFETY=safe -DFFI_GETSOCKOPT="hs_getsockopt" -DFFI_GETSOCKOPT_SAFETY=safe -DFFI_SETSOCKOPT="hs_setsockopt" -DFFI_SETSOCKOPT_SAFETY=safe -DFFI_GETADDRINFO="hs_getaddrinfo" -DFFI_GETADDRINFO_SAFETY=safe -DFFI_FREEADDRINFO="hs_freeaddrinfo" -DFFI_FREEADDRINFO_SAFETY=unsafe -DFFI_GETNAMEINFO="hs_getnameinfo" -DFFI_GETNAMEINFO_SAFETY=safe -DFFI_GAI_STRERROR="hs_gai_strerror" -DFFI_GAI_STRERROR_SAFETY=unsafe else c-sources: cbits/hs_socket_posix.c cpp-options: -DFFI_SOCKET="socket" -DFFI_SOCKET_SAFETY=unsafe -DFFI_BIND="bind" -DFFI_BIND_SAFETY=unsafe -DFFI_LISTEN="listen" -DFFI_LISTEN_SAFETY=unsafe -DFFI_CLOSE="close" -DFFI_CLOSE_SAFETY=unsafe -DFFI_ACCEPT="accept" -DFFI_ACCEPT_SAFETY=unsafe -DFFI_CONNECT="connect" -DFFI_CONNECT_SAFETY=unsafe -DFFI_SEND="send" -DFFI_SEND_SAFETY=unsafe -DFFI_SENDTO="sendto" -DFFI_SENDTO_SAFETY=unsafe -DFFI_SENDMSG="sendmsg" -DFFI_SENDMSG_SAFETY=unsafe -DFFI_RECV="recv" -DFFI_RECV_SAFETY=unsafe -DFFI_RECVFROM="recvfrom" -DFFI_RECVFROM_SAFETY=unsafe -DFFI_RECVMSG="recvmsg" -DFFI_RECVMSG_SAFETY=unsafe -DFFI_GETSOCKOPT="getsockopt" -DFFI_GETSOCKOPT_SAFETY=unsafe -DFFI_SETSOCKOPT="setsockopt" -DFFI_SETSOCKOPT_SAFETY=unsafe -DFFI_GETADDRINFO="getaddrinfo" -DFFI_GETADDRINFO_SAFETY=safe -DFFI_FREEADDRINFO="freeaddrinfo" -DFFI_FREEADDRINFO_SAFETY=unsafe -DFFI_GETNAMEINFO="getnameinfo" -DFFI_GETNAMEINFO_SAFETY=safe -DFFI_GAI_STRERROR="gai_strerror" -DFFI_GAI_STRERROR_SAFETY=unsafe test-suite basic hs-source-dirs: tests main-is: Basic.hs type: exitcode-stdio-1.0 default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , bytestring < 0.11 , socket , async test-suite AddrInfo hs-source-dirs: tests main-is: AddrInfo.hs type: exitcode-stdio-1.0 default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , bytestring < 0.11 , socket source-repository head type: git location: git://github.com/lpeterse/haskell-socket.git