mirror of https://github.com/voidlizard/hbs2
37 lines
835 B
Haskell
37 lines
835 B
Haskell
{-# Language NumericUnderscores #-}
|
|
module Main where
|
|
|
|
import HBS2.Prelude.Plated
|
|
|
|
import HBS2.Hash
|
|
import HBS2.Data.Types.Refs
|
|
import HBS2.Storage.Compact
|
|
|
|
import Data.ByteString.Builder qualified as B
|
|
import Data.ByteString.Lazy qualified as LBS
|
|
import Data.ByteString.Char8 qualified as BS8
|
|
import Data.Function
|
|
import Streaming.Prelude qualified as S
|
|
import System.TimeIt
|
|
import Data.HashSet qualified as HS
|
|
import Data.HashSet (HashSet)
|
|
import Data.List qualified as List
|
|
import UnliftIO
|
|
import System.Random
|
|
import Data.Word
|
|
import Control.Monad
|
|
import System.Environment
|
|
|
|
main :: IO ()
|
|
main = do
|
|
[f] <- getArgs
|
|
sto <- compactStorageOpen @HbSync mempty f
|
|
|
|
for_ [0..10_000_000] $ \i -> do
|
|
let k = B.toLazyByteString (B.word64BE i) & LBS.toStrict
|
|
let v = BS8.pack (show k)
|
|
put sto k v
|
|
|
|
compactStorageClose sto
|
|
|