github.com/df-mc/goleveldb@v1.1.9/leveldb/doc.go (about) 1 // Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com> 2 // All rights reserved. 3 // 4 // Use of this source code is governed by a BSD-style license that can be 5 // found in the LICENSE file. 6 7 // Package leveldb provides implementation of LevelDB key/value database. 8 // 9 // Create or open a database: 10 // 11 // // The returned DB instance is safe for concurrent use. Which mean that all 12 // // DB's methods may be called concurrently from multiple goroutine. 13 // db, err := leveldb.OpenFile("path/to/db", nil) 14 // ... 15 // defer db.Close() 16 // ... 17 // 18 // Read or modify the database content: 19 // 20 // // Remember that the contents of the returned slice should not be modified. 21 // data, err := db.Get([]byte("key"), nil) 22 // ... 23 // err = db.Put([]byte("key"), []byte("value"), nil) 24 // ... 25 // err = db.Delete([]byte("key"), nil) 26 // ... 27 // 28 // Iterate over database content: 29 // 30 // iter := db.NewIterator(nil, nil) 31 // for iter.Next() { 32 // // Remember that the contents of the returned slice should not be modified, and 33 // // only valid until the next call to Next. 34 // key := iter.Key() 35 // value := iter.Value() 36 // ... 37 // } 38 // iter.Release() 39 // err = iter.Error() 40 // ... 41 // 42 // Iterate over subset of database content with a particular prefix: 43 // iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil) 44 // for iter.Next() { 45 // // Use key/value. 46 // ... 47 // } 48 // iter.Release() 49 // err = iter.Error() 50 // ... 51 // 52 // Seek-then-Iterate: 53 // 54 // iter := db.NewIterator(nil, nil) 55 // for ok := iter.Seek(key); ok; ok = iter.Next() { 56 // // Use key/value. 57 // ... 58 // } 59 // iter.Release() 60 // err = iter.Error() 61 // ... 62 // 63 // Iterate over subset of database content: 64 // 65 // iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil) 66 // for iter.Next() { 67 // // Use key/value. 68 // ... 69 // } 70 // iter.Release() 71 // err = iter.Error() 72 // ... 73 // 74 // Batch writes: 75 // 76 // batch := new(leveldb.Batch) 77 // batch.Put([]byte("foo"), []byte("value")) 78 // batch.Put([]byte("bar"), []byte("another value")) 79 // batch.Delete([]byte("baz")) 80 // err = db.Write(batch, nil) 81 // ... 82 // 83 // Use bloom filter: 84 // 85 // o := &opt.Options{ 86 // Filter: filter.NewBloomFilter(10), 87 // } 88 // db, err := leveldb.OpenFile("path/to/db", o) 89 // ... 90 // defer db.Close() 91 // ... 92 package leveldb