diff --git a/AUTHORS.txt b/AUTHORS.txt
new file mode 100644
--- /dev/null
+++ b/AUTHORS.txt
@@ -0,0 +1,3 @@
+Author, target of blame:
+
+Austin Seipp <mad [dot] one [@at] gmail [dot] com>
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,31 @@
+Copyright (c) 2012, Austin Seipp
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Austin Seipp nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Network/Pcap/Conduit.hs b/Network/Pcap/Conduit.hs
new file mode 100644
--- /dev/null
+++ b/Network/Pcap/Conduit.hs
@@ -0,0 +1,49 @@
+-- |
+-- Module      : Network.Pcap.Conduit
+-- Copyright   : (c) Austin Seipp 2012
+-- License     : BSD3
+--
+-- Maintainer  : mad.one@gmail.com
+-- Stability   : experimental
+-- Portability : GHC probably
+--
+-- This package provides conduit 'Sources' for pcap data ( captured by
+-- wireshark, tcpdump, etc.) You can enumerate pcap files and live
+-- interfaces.
+--
+-- Based on @pcap-enumerator@.
+--
+module Network.Pcap.Conduit
+       ( Packet        -- :: *
+       , sourceOffline -- :: MonadIO m => FilePath -> Source m Packet
+       , sourceLive    -- :: MonadIO m => String -> Int -> Bool -> Int64 -> Source m Packet
+       ) where
+
+import Control.Monad.IO.Class (liftIO, MonadIO)
+import Data.ByteString (ByteString)
+import Data.Conduit (Source, yield)
+import Data.Int (Int64)
+import Network.Pcap
+
+-- | Convenient alias.
+type Packet = (PktHdr, ByteString)
+
+-- | Create a conduit 'Source' from a pcap data file.
+sourceOffline :: MonadIO m => FilePath -> Source m Packet
+sourceOffline path = (liftIO $ openOffline path) >>= sourcePcap1
+
+-- | Create a conduit 'Source' from a live interface.
+sourceLive :: MonadIO m
+           => String -- ^ Device name
+           -> Int    -- ^ Snapshot length in bytes
+           -> Bool   -- ^ Promiscuous mode?
+           -> Int64  -- ^ Timeout (in microseconds)
+           -> Source m Packet
+sourceLive n s p t = (liftIO $ openLive n s p t) >>= sourcePcap1
+
+sourcePcap1 :: MonadIO m => PcapHandle -> Source m Packet
+sourcePcap1 h = do
+  pkt@(hdr,_) <- liftIO (nextBS h)
+  if (hdrCaptureLength hdr == 0)
+    then return ()
+    else yield pkt >> sourcePcap1 h
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,41 @@
+# Conduit <-> Pcap
+
+`pcap-conduit` lets you use the Conduit package to iterate over network data, using
+the `libpcap` API. It allows you to stream in both offline pcap dump files and live
+network interfaces into a conduit `Source`.
+
+[travis-ci.org](http://travis-ci.org) results: [![Build Status](https://secure.travis-ci.org/thoughtpolice/pcap-conduit.png?branch=master)](http://travis-ci.org/thoughtpolice/pcap-conduit)
+
+# Installation
+
+It's just a `cabal install` away:
+
+```
+$ cabal install pcap-conduit
+```
+
+# Join in
+
+File bugs in the GitHub [issue tracker][].
+
+Master [git repository][gh]:
+
+* `git clone https://github.com/thoughtpolice/pcap-conduit.git`
+
+There's also a [BitBucket mirror][bb]:
+
+* `git clone https://bitbucket.org/thoughtpolice/pcap-conduit.git`
+
+# Authors
+
+See [AUTHORS.txt](https://raw.github.com/thoughtpolice/pcap-conduit/master/AUTHORS.txt).
+
+# License
+
+BSD3. See [LICENSE.txt](https://raw.github.com/thoughtpolice/pcap-conduit/master/LICENSE.txt) for terms of copyright and redistribution.
+
+[CityHash]: http://cityhash.googlecode.com
+[main page]: http://thoughtpolice.github.com/pcap-conduit
+[issue tracker]: http://github.com/thoughtpolice/pcap-conduit/issues
+[gh]: http://github.com/thoughtpolice/pcap-conduit
+[bb]: http://bitbucket.org/thoughtpolice/pcap-conduit
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/examples/IfaceToFile.hs b/examples/IfaceToFile.hs
new file mode 100644
--- /dev/null
+++ b/examples/IfaceToFile.hs
@@ -0,0 +1,20 @@
+module Main
+       ( main -- :: IO ()
+       ) where
+
+import System.Environment (getArgs)
+import Control.Applicative
+
+import Data.Conduit
+import Data.Conduit.List as CL
+import Data.Conduit.Binary
+
+import Control.Monad.Trans.Resource
+
+import Network.Pcap.Conduit
+
+main :: IO ()
+main = do
+  [i] <- getArgs
+  runResourceT $ sourceLive i 1024 False (10*1000000) $= CL.map snd
+              $$ sinkFile (i++".txt")
diff --git a/examples/makefile b/examples/makefile
new file mode 100644
--- /dev/null
+++ b/examples/makefile
@@ -0,0 +1,5 @@
+all:
+	ghc IfaceToFile
+clean:
+	rm -f *.txt *~ *.o *.hi IfaceToFile
+
diff --git a/pcap-conduit.cabal b/pcap-conduit.cabal
new file mode 100644
--- /dev/null
+++ b/pcap-conduit.cabal
@@ -0,0 +1,53 @@
+name:                pcap-conduit
+version:             0.1
+synopsis:            Conduit <-> libpcap
+description:
+  Provides a conduit source for reading from pcap files or live network
+  devices.
+homepage:            http://github.com/thoughtpolice/pcap-conduit
+bug-reports:         https://github.com/thoughtpolice/pcap-conduit/issues
+license:             BSD3
+license-file:        LICENSE.txt
+author:              Austin Seipp <mad.one@gmail.com>
+maintainer:          Austin Seipp <mad.one@gmail.com>
+category:            Network, Development
+build-type:          Simple
+cabal-version:       >=1.10
+tested-with:         GHC==7.0.4, GHC==7.2.1, GHC==7.4.2
+
+extra-source-files:
+  AUTHORS.txt, README.md
+  examples/makefile, examples/*.hs
+
+source-repository head
+  type: git
+  location: https://github.com/thoughtpolice/pcap-conduit.git
+
+library
+  exposed-modules:
+    Network.Pcap.Conduit
+  build-depends:
+    base         >= 3 && < 5,
+    bytestring,
+    transformers,
+    pcap,
+    conduit
+
+  ghc-options:      -Wall -O2 -fwarn-tabs
+  default-language: Haskell98
+
+-- test-suite properties
+--   hs-source-dirs: tests
+--   main-is:        Properties.hs
+--   type:           exitcode-stdio-1.0
+--
+--   build-depends:
+--     base           >= 3 && < 5,
+--     transformers,
+--     bytestring,
+--     pcap,
+--     conduit,
+--     pcap-conduit
+--
+--   ghc-options:      -fno-cse -fno-warn-orphans
+--   default-language: Haskell98
