Choosing an UltraLite data management component

UltraLite allows you to build a small-footprint relational database solution without requiring the additional overhead of setting up a separate database server. Instead, UltraLite programming interfaces use one of two library types.

UltraLite in-process runtime library

In UltraLite, the runtime and the application are part of the same process, which makes the database specific to the application. For all platforms, the runtime manages UltraLite databases as well as built-in synchronization operations. The UltraLite runtime can manage a maximum of 14 databases at any one time. Note that only one application can access a database at any given time.

Linking to the runtime requires that you use a specific import library/DLL pair than that of the engine. For details, see Compiling and linking your application. If you require TLS-enabled synchronization, there are additional libraries you also require. See Developing and deploying UltraLite with TLS-enabled synchronization.

UltraLite database engine client library

The UltraLite engine is only available for Windows desktop and Windows Mobile platforms. The engine is a separate executable, which provides concurrent database/application connections. Each application must use a client library when using the UltraLite engine. This client library allows each application to communicate with the UltraLite engine. The UltraLite engine requires more system resources than the UltraLite runtime and may yield lower performance.

Linking to the engine requires that you a different import library/DLL pair than that of the runtime. If you require TLS-enabled synchronization or AES FIPS database encryption, there are additional libraries you also require. See Setting up and deploying AES_FIPS database encryption in UltraLite and Developing and deploying UltraLite with TLS-enabled synchronization.

Note

Ensure that you do not exceed the concurrent connection limits supported by the UltraLite engine.

See also