streamly-bytestring alternatives and similar packages
Based on the "ByteString" category.
Alternatively, view streamly-bytestring alternatives based on common mentions on social networks and blogs.
-
bytestring
An efficient compact, immutable byte string type (both strict and lazy) suitable for binary or 8-bit character data.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of streamly-bytestring or a related project?
README
streamly-bytestring
Library for streamly and bytestring interoperation.
If you are writing code from scratch, please use Streamly.Memory.Array
which
is a generalization of ByteString
and better integrated with streamly.
This library is to enable interoperation of streamly with existing code that
uses ByteString
.
The package provides APIs to interconvert between strict Bytestring
and
streamly Array Word8
and between lazy Bytestring
and stream of Array Word8
.
The interconversion in the case of strict Bytestring
and streamly Array
Word8
has no overhead as the underlying representation of ByteString and Array
are the same, we just need to rewrap the data in a different type.
Usage
This is a dumb program that counts the number of bytes in a file.
import Streamly
import qualified Streamly.Prelude as S
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as BSL
import qualified Streamly.External.ByteString as Strict
import qualified Streamly.External.ByteString.Lazy as Lazy
import System.IO (FilePath)
strictByteStringSize :: BS.ByteString -> IO Int
strictByteStringSize bs = S.length $ S.unfold Strict.read bs
lazyByteStringSize :: BSL.ByteString -> IO Int
lazyByteStringSize bsl = S.foldl' (+) 0
$ S.mapM strictByteStringSize
$ S.map Strict.fromArray
$ Lazy.toChunks bsl
fileSize :: FilePath -> IO Int
fileSize path = do
bsl <- BSL.readFile path
lazyByteStringSize bsl