diff --git a/blockio-uring.cabal b/blockio-uring.cabal index bed51f0..e4235cd 100644 --- a/blockio-uring.cabal +++ b/blockio-uring.cabal @@ -1,57 +1,71 @@ -cabal-version: 3.4 - -name: blockio-uring -version: 0.1.0.0 -synopsis: Perform batches of asynchronous disk IO operations. -description: Support for disk I/O operations using the Linux io_uring - API. The library supports submitting large batches of I/O - operations in one go. It also supports submitting batches - from multiple Haskell threads concurrently. The I/O only - blocks the calling thread, not all other Haskell threads. - In this style, using a combination of batching and - concurrency, it is possible to saturate modern SSDs, thus - achieving maximum I/O throughput. This is particularly - helpful for performing lots of random reads. - - The library only supports recent versions of Linux, because - it uses the io_uring kernel API. It only supports disk - operations, not socket operations. - -license: MIT -license-file: LICENSE -author: Duncan Coutts -maintainer: duncan@well-typed.com -copyright: (c) Well-Typed LLP 2022 - 2024 -category: System -build-type: Simple -tested-with: GHC ==9.2 || ==9.4 || ==9.6 || ==9.8 -extra-doc-files: CHANGELOG.md - README.md +cabal-version: 3.4 +name: blockio-uring +version: 0.1.0.0 +synopsis: Perform batches of asynchronous disk IO operations. +description: + Support for disk I/O operations using the Linux io_uring + API. The library supports submitting large batches of I/O + operations in one go. It also supports submitting batches + from multiple Haskell threads concurrently. The I/O only + blocks the calling thread, not all other Haskell threads. + In this style, using a combination of batching and + concurrency, it is possible to saturate modern SSDs, thus + achieving maximum I/O throughput. This is particularly + helpful for performing lots of random reads. + + The library only supports recent versions of Linux, because + it uses the io_uring kernel API. It only supports disk + operations, not socket operations. + +license: MIT +license-file: LICENSE +author: Duncan Coutts +maintainer: duncan@well-typed.com +copyright: (c) Well-Typed LLP 2022 - 2024 +category: System +build-type: Simple +tested-with: GHC ==9.2 || ==9.4 || ==9.6 || ==9.8 +extra-doc-files: + CHANGELOG.md + README.md source-repository head type: git location: https://github.com/well-typed/blockio-uring library - exposed-modules: System.IO.BlockIO - other-modules: System.IO.BlockIO.URing - System.IO.BlockIO.URingFFI - build-depends: base >= 4.16 && < 4.20 - , array ^>= 0.5 - , unix ^>= 2.8 - pkgconfig-depends: liburing - default-language: Haskell2010 - ghc-options: -Wall + exposed-modules: System.IO.BlockIO + other-modules: + System.IO.BlockIO.URing + System.IO.BlockIO.URingFFI + + build-depends: + , array ^>=0.5 + , base >=4.16 && <4.20 + , unix ^>=2.8 + + pkgconfig-depends: liburing + default-language: Haskell2010 + ghc-options: -Wall benchmark bench - default-language: Haskell2010 - type: exitcode-stdio-1.0 - hs-source-dirs: benchmark, . - main-is: Bench.hs - build-depends: base, array, unix, random, time, containers, async - pkgconfig-depends: liburing - other-modules: System.IO.BlockIO - System.IO.BlockIO.URing - System.IO.BlockIO.URingFFI - ghc-options: -Wall -threaded + default-language: Haskell2010 + type: exitcode-stdio-1.0 + hs-source-dirs: benchmark . + main-is: Bench.hs + build-depends: + , array + , async + , base + , containers + , random + , time + , unix + + pkgconfig-depends: liburing + other-modules: + System.IO.BlockIO + System.IO.BlockIO.URing + System.IO.BlockIO.URingFFI + ghc-options: -Wall -threaded