-
Notifications
You must be signed in to change notification settings - Fork 0
/
blockio-uring.cabal
111 lines (97 loc) · 2.74 KB
/
blockio-uring.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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: [email protected]
copyright: (c) Well-Typed LLP 2022 - 2024
category: System
build-type: Simple
tested-with: GHC ==8.10 || ==9.2 || ==9.4 || ==9.6 || ==9.8 || ==9.10
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
hs-source-dirs: src
other-modules:
System.IO.BlockIO.URing
System.IO.BlockIO.URingFFI
build-depends:
, base >=4.14 && <4.21
, primitive ^>=0.9
, vector ^>=0.13
pkgconfig-depends: liburing >=2.0 && <2.7
default-language: Haskell2010
ghc-options: -Wall
benchmark bench
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: benchmark src
main-is: Bench.hs
build-depends:
, array
, async
, base
, containers
, primitive
, random
, time
, unix
, vector
pkgconfig-depends: liburing
other-modules:
System.IO.BlockIO
System.IO.BlockIO.URing
System.IO.BlockIO.URingFFI
ghc-options: -Wall -threaded
test-suite test
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: test.hs
build-depends:
, array
, base
, blockio-uring
, primitive
, tasty
, tasty-hunit
, vector
ghc-options: -threaded
test-suite test-internals
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test src
main-is: test-internals.hs
build-depends:
, array
, base
, primitive
, tasty
, tasty-hunit
, vector
pkgconfig-depends: liburing
other-modules:
System.IO.BlockIO
System.IO.BlockIO.URing
System.IO.BlockIO.URingFFI
ghc-options: -threaded -fno-ignore-asserts