# Package com.apple.foundationdb

Provides an API for the FoundationDB transactional key/value store.

See: Description

Interface Summary
Database: A mutable, lexicographically ordered mapping from binary keys to binary values.
OptionConsumer: An object on which encoded options can be set.
ReadTransaction: A read-only subset of a FoundationDB `Transaction`.
ReadTransactionContext: A context in which a `ReadTransaction` is available for database operations.
Transaction: A Transaction represents a FoundationDB database transaction.
TransactionContext: A context in which a `Transaction` is available for database operations.

Class Summary
Cluster: The `Cluster` represents a connection to a physical set of cooperating machines running FoundationDB.
ClusterOptions: A set of options that can be set on a `Cluster`.
DatabaseOptions: A set of options that can be set on a `Database`.
FDB: The starting point for accessing FoundationDB.
KeySelector: A `KeySelector` identifies a particular key in the database.
KeyValue: A key/value pair.
LocalityUtil: The FoundationDB API comes with a set of functions for discovering the storage locations of keys within your cluster.
NetworkOptions: A set of options that can be set globally for the `FoundationDB API`.
Range: A simple description of an exact range of keyspace, specified by a begin and end key.
TransactionOptions: A set of options that can be set on a `Transaction`.

Enum Summary
MutationType: A set of operations that can be performed atomically on a database.
StreamingMode: Options that control the way the Java binding performs range reads.

Exception Summary
FDBException: An Error from the native layers of FoundationDB.

## Package com.apple.foundationdb Description

Provides an API for the FoundationDB transactional key/value store. Clients operating on a `Database` should, in most cases, use the `run(Function)` or the `runAsync(Function)` constructs. These two functions (and their two derivations) implement a proper retry loop around the work that needs to get done and, in the case of `Database`, assure that `Transaction.commit()` has returned successfully before itself returning. If you are not able to use these functions for some reason please closely read and understand the other developer documentation on FoundationDB transactions.