packages feed

ping-0.1.0.2: README.md

# ping

## Objective

This library provides high-performance functions that issue ICMP echo
requests and wait for responses, measuring the elapsed time. It is intended
to be cross-platform as possible, and it may use any system APIs available.
However, it will not resort to running `/bin/ping` as a subprocess. Pull
requests that improve compatibility will accepted so long as they do not
start a subprocess.

## Build Instructions

This library relies on `posix-api`, which needs a currently-unreleased
version of `hsc2hs` in order to build. In order to try out this library, try:

```
~/dev $ git clone https://github.com/haskell/hsc2hs
~/dev $ cd hsc2hs
~/dev/hsc2hs $ cabal install
~/dev/hsc2hs $ cd ..
~/dev $ git clone https://github.com/andrewthad/ping
~/dev $ cd ping
~/dev/ping $ cabal new-build --with-hsc2hs=~/.cabal/bin/hsc2hs
```

This will build all dependencies, including `posix-api`, with the
upstream `hsc2hs` tool.

## Infelicities

This project's objective is to be cross-platform. However, it does not
accomplish this. The author primarily runs a Debian Linux distribution
and consequently lacks the resources and the motivation to make this
work on other platforms. Contributions to improve compatibility are
welcomed. Current known problems include:

- On Linux, the library should fallback to using raw sockets if `IPPROTO_ICMP`
  does not work.
- Support for Windows is missing.
- Support for BSD is missing. However, adding raw socket support to improve
  the situation on Linux may fix this as well.
- Support for Darwin is missing. This should not be difficult since
  Darwin supports `IPPROTO_ICMP` sockets.