Artifact golang-github-bmatsuo-lmdb-go-dev_1.8.0+git20170215.a14b5a3-4_all

Metadata
deb_control_files:
- control
- md5sums
deb_fields:
  Architecture: all
  Depends: golang-golang-x-net-dev
  Description: "Bindings for the LMDB C library\n Go bindings to the OpenLDAP Lightning\
    \ Memory-Mapped Database (LMDB).\n Packages Functionality is logically divided\
    \ into several packages.\n Applications will usually need to import lmdb but may\
    \ import other\n packages on an as needed basis.\n .\n Packages in the exp/ directory\
    \ are not stable and may change without\n warning.  That said, they are generally\
    \ usable if application\n dependencies are managed and pinned by tag/commit.\n\
    \ .\n Developers concerned with package stability should consult the\n documentation.\
    \  lmdb GoDoc\n (https://godoc.org/github.com/bmatsuo/lmdb-go/lmdb)\n stable (#user-content-versioning-and-stability)\n\
    \ go import \"github.com/bmatsuo/lmdb-go/lmdb\"\n .\n Core bindings allowing low-level\
    \ access to LMDB.  lmdbscan\n GoDoc (https://godoc.org/github.com/bmatsuo/lmdb-go/lmdbscan)\n\
    \ stable (#user-content-versioning-and-stability)\n go import \"github.com/bmatsuo/lmdb-go/lmdbscan\"\
    \n .\n A utility package for scanning database ranges. The API is inspired by\n\
    \ bufio.Scanner (https://godoc.org/bufio#Scanner) and the python cursor\n implementation\
    \ (https://lmdb.readthedocs.org/en/release/#cursor-class).\n exp/lmdbpool GoDoc\n\
    \ (https://godoc.org/github.com/bmatsuo/lmdb-go/exp/lmdbpool)\n experimental (#user-content-versioning-and-stability)\n\
    \ go import \"github.com/bmatsuo/lmdb-go/exp/lmdbpool\"\n .\n A utility package\
    \ which facilitates reuse of lmdb.Txn objects using a\n sync.Pool. Naively storing\
    \ lmdb.Txn objects in sync.Pool can be\n troublesome. And the lmdbpool.TxnPool\
    \ type has been defined as a\n complete pooling solution and as reference for\
    \ applications attempting\n to write their own pooling implementation.\n .\n The\
    \ lmdbpool package is relatively new. But it has a lot of potential\n utility.\
    \  And once the lmdbpool API has been ironed out, and the\n implementation hardened\
    \ through use by real applications it can be\n integrated directly into the lmdb\
    \ package for more transparent\n integration.  Please test this package and provide\
    \ feedback to speed\n this process up.  exp/lmdbsync GoDoc\n (https://godoc.org/github.com/bmatsuo/lmdb-go/exp/lmdbsync)\n\
    \ experimental (#user-content-versioning-and-stability)\n go import \"github.com/bmatsuo/lmdb-go/exp/lmdbsync\"\
    \n .\n An experimental utility package that provides synchronization necessary\n\
    \ to change an environment's map size after initialization. The package\n provides\
    \ error handlers to automatically manage database size and retry\n failed transactions.\n\
    \ .\n The lmdbsync package is usable but the implementation of Handlers are\n\
    \ unstable and may change in incompatible ways without notice.\n The use cases\
    \ of dynamic map sizes and multiprocessing are niche and\n the package requires\
    \ much more development driven by practical feedback\n before the Handler API\
    \ and the provided implementations can be\n considered stable.  Key Features:\
    \ Idiomatic API inspired by BoltDB\n (https://github.com/boltdb/bolt) with automatic\
    \ commit/rollback of\n transactions. The goal of lmdb-go is to provide idiomatic\
    \ database\n interactions without compromising the flexibility of the C API.\n\
    \ .\n NOTE: While the lmdb package tries hard to make LMDB as easy to\n use as\
    \ possible there are compromises, gotchas, and caveats that\n application developers\
    \ must be aware of when relying on LMDB to store\n their data.  All users are\
    \ encouraged to fully read the documentation\n (https://godoc.org/github.com/bmatsuo/lmdb-go/lmdb)\
    \ so they are aware\n of these caveats.\n .\n Where the lmdb package and its implementation\
    \ decisions do not\n meet the needs of application developers in terms of safety\
    \ or\n operational use the lmdbsync package has been designed to wrap lmdb and\n\
    \ safely fill in additional functionality.  Consult the documentation\n (https://godoc.org/github.com/bmatsuo/lmdb-go/exp/lmdbsync)\
    \ for more\n information about the lmdbsync package.  API coverage The lmdb-go\n\
    \ project aims for complete coverage of the LMDB C API (within reason).\n Some\
    \ notable features and optimizations that are supported: \u2022 Idiomatic\n subtransactions\
    \ (\"sub-updates\") that allow the batching of updates.\u2022\n Batch IO on databases\
    \ utilizing the MDB_DUPSORT and MDB_DUPFIXED flags.\u2022\n Reserved writes than\
    \ can save in memory copies converting/buffering into\n []byte.  For tracking\
    \ purposes a list of unsupported features is kept in\n an issue (https://github.com/bmatsuo/lmdb-go/issues/1).\
    \  Zero-copy reads\n Applications with high performance requirements can opt-in\
    \ to fast,\n zero-copy reads at the cost of runtime safety.  Zero-copy behavior\
    \ is\n specified at the transaction level to reduce instrumentation overhead.\n\
    \ .\n ``` err := lmdb.View(func(txn *lmdb.Txn) error {\n     // RawRead enables\
    \ zero-copy behavior with some serious caveats.\n     // Read the documentation\
    \ carefully before using.  txn.RawRead = true\n val, err := txn.Get(dbi, []byte(\"\
    largevalue\"), 0) // ...\n .\n }) ``` Documentation Comprehensive documentation\
    \ and examples\n are provided to demonstrate safe usage of lmdb.  In addition\
    \ to\n godoc (https://godoc.org/github.com/bmatsuo/lmdb-go) documentation,\n implementations\
    \ of the standand LMDB commands (mdb_stat, etc) can be found\n in the cmd/ (cmd/)\
    \ directory and some simple experimental commands can be\n found in the exp/cmd/\
    \ (exp/cmd) directory.  Aside from providing minor\n utility these programs are\
    \ provided as examples of lmdb in practice.\n LMDB compared to BoltDB: BoltDB\
    \ is a quality database with a design\n similar to LMDB.  Both store key-value\
    \ data in a file and provide ACID\n transactions.  So there are often questions\
    \ of why to use one database\n or the other.  Advantages of BoltDB\u2022 Nested\
    \ databases allow for\n hierarchical data organization.\u2022 Far more databases\
    \ can be accessed\n concurrently.\u2022 Operating systems that do not support\
    \ sparse files do\n not use up excessive space due to a large pre-allocation of\
    \ file space.\n The exp/lmdbsync package is intended to resolve this problem with\n\
    \ LMDB but it is not ready.\u2022 As a pure Go package bolt can be easily\n cross-compiled\
    \ using the go toolchain and GOOS/GOARCH variables.\u2022 Its\n simpler design\
    \ and implementation in pure Go mean it is free of many\n caveats and gotchas\
    \ which are present using the lmdb package.  For more\n information about caveats\
    \ with the lmdb package, consult its documentation\n (https://godoc.org/github.com/bmatsuo/lmdb-go/lmdb).Advantages\
    \ of LMDB\u2022\n Keys can contain multiple values using the DupSort flag.\u2022\
    \ Updates can\n have sub-updates for atomic batching of changes.\u2022 Databases\
    \ typically\n remain open for the application lifetime.  This limits the number\
    \ of\n concurrently accessible databases.  But, this minimizes the overhead of\n\
    \ database accesses and typically produces cleaner code than an equivalent\n BoltDB\
    \ implementation.\u2022 Significantly faster than BoltDB.  The raw\n speed of\
    \ LMDB easily surpasses BoltDB.  Additionally, LMDB provides\n optimizations ranging\
    \ from safe, feature-specific optimizations to\n generally unsafe, extremely situational\
    \ ones.  Applications are free to\n enable any optimizations that fit their data,\
    \ access, and reliability\n models.\u2022 LMDB allows multiple applications to\
    \ access a database\n simultaneously.  Updates from concurrent processes are synchronized\
    \ using\n a database lock file.\u2022 As a C library, applications in any language\n\
    \ can interact with LMDB databases.  Mission critical Go applications can\n use\
    \ a database while Python scripts perform analysis on the side.Build\n There is\
    \ no dependency on shared libraries.  So most users can simply\n install using\
    \ go get.\n .\n go get github.com/bmatsuo/lmdb-go/lmdb\n .\n On FreeBSD 10, you\
    \ must explicitly set CC (otherwise it will fail with\n a cryptic error), for\
    \ example: CC=clang go test -v ./...\n .\n Building commands and running tests\
    \ can be done with go or with make:\n make bin ; make test ; make check ; make\
    \ all\n .\n On Linux, you can specify the pwritev build tag to reduce the number\n\
    \ of syscalls required when committing a transaction. In your own package\n you\
    \ can then do go build -tags pwritev .\n .\n to enable the optimisation.  DocumentationGo\
    \ doc The go doc documentation\n available on godoc.org (https://godoc.org/github.com/bmatsuo/lmdb-go)\n\
    \ is the primary source of developer documentation for lmdb-go.\n It provides\
    \ an overview of the API with a lot of usage examples.\n Where necessary the documentation\
    \ points out differences between\n the semantics of methods and their C counterparts.\
    \  LMDB The\n LMDB homepage (http://symas.com/mdb/) and mailing list (archives\n\
    \ (http://www.openldap.org/lists/openldap-technical/)) are the official\n source\
    \ of documentation regarding low-level LMDB operation and internals.\n .\n Along\
    \ with an API reference LMDB provides a high-level summary\n (http://symas.com/mdb/doc/starting.html)\
    \ of the library.  While lmdb-go\n abstracts many of the thread and transaction\
    \ details by default the rest\n of the guide is still useful to compare with go\
    \ doc.  Versioning and\n Stability The lmdb-go project makes regular releases\
    \ with IDs X.Y.Z.\n All packages outside of the exp/ directory are considered\
    \ stable and\n adhere to the guidelines of semantic versioning (http://semver.org/).\n\
    \ .\n Experimental packages (those packages in exp/) are not required to adhere\n\
    \ to semantic versioning.  However packages specifically declared to merely\n\
    \ be \"unstable\" can be relied on more for long term use with less concern.\n\
    \ .\n The API of an unstable package may change in subtle ways between minor\n\
    \ release versions.  But deprecations will be indicated at least one\n release\
    \ in advance and all functionality will remain available through\n some method.\
    \  License Except where otherwise noted files in the lmdb-go\n project are licensed\
    \ under the BSD 3-clause open source license.\n .\n The LMDB C source is licensed\
    \ under the OpenLDAP Public License.\n Linksgithub.com/bmatsuo/raft-mdb (https://github.com/bmatsuo/raft-mdb)\n\
    \ (godoc (https://godoc.org/github.com/bmatsuo/raft-mdb))\n An experimental backend\
    \ for github.com/hashicorp/raft\n (https://github.com/hashicorp/raft) forked from\n\
    \ github.com/hashicorp/raft-mdb (https://github.com/hashicorp/raft-mdb).\n github.com/bmatsuo/cayley/graph/lmdb\n\
    \ (https://github.com/bmatsuo/cayley/tree/master/graph/lmdb)\n (godoc (https://godoc.org/github.com/bmatsuo/cayley/graph/lmdb))\n\
    \ Experimental backend quad-store for github.com/google/cayley\n (https://github.com/google/cayley)\
    \ based off of the BoltDB implementation\n (https://github.com/google/cayley/tree/master/graph/bolt)."
  Homepage: https://github.com/bmatsuo/lmdb-go
  Installed-Size: '679'
  Maintainer: Debian Go Packaging Team <team+pkg-go@tracker.debian.org>
  Package: golang-github-bmatsuo-lmdb-go-dev
  Priority: optional
  Section: devel
  Source: golang-github-bmatsuo-lmdb-go
  Version: 1.8.0+git20170215.a14b5a3-4
srcpkg_name: golang-github-bmatsuo-lmdb-go
srcpkg_version: 1.8.0+git20170215.a14b5a3-4

File

golang-github-bmatsuo-lmdb-go-dev_1.8.0+git20170215.a14b5a3-4_all.deb
Binary file golang-github-bmatsuo-lmdb-go-dev_1.8.0+git20170215.a14b5a3-4_all.deb cannot be displayed. you can view it raw or download it instead.

Relations

Relation Direction Type Name
built-using Source package golang-github-bmatsuo-lmdb-go_1.8.0+git20170215.a14b5a3-4

binary package System - - 6 months ago 5 months
BETA