Storage package
ndn-python-repo supports 3 types of databases as backends.
The Storage package provides a unified key-value storage API with the following features:
Supports
MustBeFreshSupports
CanBePrefixBatched writes with periodic writebacks to improve performance
The Storage class provides an interface, and is implemented by:
SqliteStorageLevelDBStorageMongoDBStorage
Note that the type Union[Iterable[Union[bytes, bytearray, memoryview, str]], str, bytes, bytearray, memoryview]
in the documentation is equivalent to the ndn.name.NonStrictName type.
Reference
- class ndn_python_repo.storage.Storage
Interface for a unified key-value storage API.
- get_data_packet(name, can_be_prefix=False, must_be_fresh=False)
Get a data packet named
name.- Parameters:
name (
Union[Iterable[Union[bytes,bytearray,memoryview,str]],str,bytes,bytearray,memoryview]) – NonStrictName. The name of the data packet.can_be_prefix (
bool) – bool. If true, use prefix match instead of exact match.must_be_fresh (
bool) – bool. If true, ignore expired data.
- Return type:
Optional[bytes]- Returns:
The value of the data packet.
- put_data_packet(name, data)
Insert a data packet named
namewith valuedata. This method will parsedatato get its freshnessPeriod, and compute its expiration time by adding the freshnessPeriod to the current time.- Parameters:
name (
Union[Iterable[Union[bytes,bytearray,memoryview,str]],str,bytes,bytearray,memoryview]) – NonStrictName. The name of the data packet.data (
bytes) – bytes. The value of the data packet.
- remove_data_packet(name)
Remove a data packet named
name.- Parameters:
name (
Union[Iterable[Union[bytes,bytearray,memoryview,str]],str,bytes,bytearray,memoryview]) – NonStrictName. The name of the data packet.- Return type:
bool- Returns:
True if a data packet is being removed.
- class ndn_python_repo.storage.SqliteStorage(db_path)
Init table “data” with the attribute
keybeing the primary key.- Parameters:
db_path (
str) – str. Path to database file.
- class ndn_python_repo.storage.LevelDBStorage(dir)
Creates a LevelDB storage instance at disk location
str.- Parameters:
dir (
str) – str. The disk location of the database directory.
- class ndn_python_repo.storage.MongoDBStorage(db, collection, uri='mongodb://127.0.0.1:27017/')
Init a MongoDB storage with unique index on key.
- Parameters:
db (
str) – str. Database name.collection (
str) – str. Collection name.