You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/test.yml
+19-9Lines changed: 19 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -6,18 +6,12 @@ jobs:
6
6
strategy:
7
7
matrix:
8
8
os: [ ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, macos-10.15 ] # list of os: https://github.com/actions/virtual-environments
9
-
# os: [ubuntu-20.04, macos-10.15, windows-latest] # list of os: https://github.com/actions/virtual-environments
10
-
go: [ '1.16', '1.13' ]
9
+
go: [ '1.16', '1.15' ]
11
10
runs-on: ${{ matrix.os }}
12
11
13
12
steps:
14
13
- uses: actions/checkout@v2
15
14
16
-
- name: Add Msys64 to PATH # see https://github.com/actions/virtual-environments/issues/1613 and https://github.com/actions/virtual-environments/pull/1648
- Its simpler design and implementation in pure Go mean it is free of many caveats and gotchas which are present using
91
+
the MDBX package. For more information about caveats with the MDBX package, consult its
92
+
[documentation](https://erthink.github.io/libmdbx/) so they are aware of these caveats. And even better if read
93
+
through [mdbx.h](https://github.com/erthink/libmdbx/blob/master/mdbx.h).
114
94
115
-
### Advantages of LMDB and MDBX
95
+
### Advantages of MDBX
116
96
117
97
- Keys can contain multiple values using the DupSort flag.
118
98
119
99
- Updates can have sub-updates for atomic batching of changes.
120
100
121
-
- Databases typically remain open for the application lifetime. This limits
122
-
the number of concurrently accessible databases. But, this minimizes the
123
-
overhead of database accesses and typically produces cleaner code than
124
-
an equivalent BoltDB implementation.
125
-
126
-
- Significantly faster than BoltDB. The raw speed of MDBX easily surpasses
127
-
BoltDB. Additionally, MDBX provides optimizations ranging from safe,
128
-
feature-specific optimizations to generally unsafe, extremely situational
129
-
ones. Applications are free to enable any optimizations that fit their data,
130
-
access, and reliability models.
131
-
132
-
- MDBX allows multiple applications to access a database simultaneously.
133
-
Updates from concurrent processes are synchronized using a database lock
134
-
file.
135
-
136
-
- As a C library, applications in any language can interact with MDBX
137
-
databases. Mission critical Go applications can use a database while Python
138
-
scripts perform analysis on the side.
139
-
140
-
## Build
101
+
- Databases typically remain open for the application lifetime. This limits the number of concurrently accessible
102
+
databases. But, this minimizes the overhead of database accesses and typically produces cleaner code than an
103
+
equivalent BoltDB implementation.
141
104
142
-
There is no dependency on shared libraries. But it's impossible to use 'go get' for now. Only way is to copy sources of this package to your project, and call `make mdbx-build` manually. See: https://github.com/torquem-ch/mdbx-go/issues/5
105
+
- Significantly faster than BoltDB. The raw speed of MDBX easily surpasses BoltDB. Additionally, MDBX provides
106
+
optimizations ranging from safe, feature-specific optimizations to generally unsafe, extremely situational ones.
107
+
Applications are free to enable any optimizations that fit their data, access, and reliability models.
143
108
144
-
On FreeBSD 10, you must explicitly set `CC` (otherwise it will fail with a
145
-
cryptic error), for example:
109
+
- MDBX allows multiple applications to access a database simultaneously. Updates from concurrent processes are
110
+
synchronized using a database lock file.
146
111
147
-
CC=clang go test -v ./...
112
+
- As a C library, applications in any language can interact with MDBX databases. Mission critical Go applications can
113
+
use a database while Python scripts perform analysis on the side.
148
114
149
-
## Documentation
150
-
151
-
### Go doc
152
-
153
-
The `go doc` documentation available on
154
-
[godoc.org](https://godoc.org/github.com/torquem-ch/mdbx-go) is the primary source
155
-
of developer documentation for mdbx-go. It provides an overview of the API
156
-
with a lot of usage examples. Where necessary the documentation points out
157
-
differences between the semantics of methods and their C counterparts.
115
+
## Build
158
116
159
-
### LMDB
117
+
On FreeBSD 10, you must explicitly set `CC` (otherwise it will fail with a cryptic error), for example:
160
118
161
-
The LMDB [homepage](http://symas.com/mdb/)
119
+
CC=clang go test -v ./...
162
120
163
-
### MDBX
121
+
##Documentation
164
122
165
-
The MDBX [homepage](https://github.com/erthink/libmdbx)
123
+
- Examples see in *_test.go files of this repo
124
+
-[The MDBX](https://erthink.github.io/libmdbx/) And even better if read
125
+
through [mdbx.h](https://github.com/erthink/libmdbx/blob/master/mdbx.h).
0 commit comments