-----------------------------------------------------------------------------
-- |
-- Module : Data.IDA
-- Copyright : Peter Robinson 2014
-- License : LGPL
--
-- Maintainer : Peter Robinson <peter.robinson@monoid.at>
-- Stability : experimental
-- Portability : portable
--
-- This module provides an implementation of a space efficient (m,n)-threshold information
-- dispersal algorithm (IDA) as described in
-- "Efficient Dispersal of Information for Security, Load Balancing, and Fault
-- Tolerance", by Michael O. Rabin, JACM 1989.
--
-- Given a ByteString bstr of length D
-- >>> f = encode m n bstr
-- encodes bstr as a list of n 'Fragment's, each containing a ByteString
-- of length approximately @D/m@. For reconstructing the original ByteString out
-- of a sublist fssub of fs,
-- consisting of at least m fragments, use
-- >>> decode fssub
--
-----------------------------------------------------------------------------
module Data.IDA(encode,decode,Fragment(fragmentId))
where
import Data.IDA.Internal