SchemaCrawler is a Java API which makes working with database metadata as easy as working with ordinary Java objects. It is also a database schema discovery and comprehension and schema documentation tool. You can search for database schema objects using regular expressions, output the schema and data in a readable text format, and find potential design issues with lint . The output is designed to be diff-ed against other database schemas. SchemaCrawler supports almost any database which has a JDBC driver, but for convenience is bundled with drivers for some commonly-used RDBMS systems. SchemaCrawler works with any operating system which supports Java.
Fix8 is a modern open source C++ FIX framework featuring complete schema driven customisation, high performance, and fast application development. The system is comprised of a compiler for generating C++ message and field encoders, decoders, and instantiation tables, a runtime library to support the generated code and framework, and a set of complete client/server test applications. For the same message, Fix8 encodes 3.2 times faster and decodes 2.3 times faster than Quickfix, an average of 2.7 times. In other words, it reduces encode latency by 69% and reduces decode latency by 56%.
The OpenDBX libraries provide a unified and consistent API for software developers to different database management systems. The C and C++ libraries aim to implement access to the native database interfaces efficiently via a thin abstraction layer. They consist of a basic set of functions that are part of all vendor database libraries and can be extended by additional function blocks. Currently, Firebird/Interbase, MS SQL Server, MySQL, ODBC, Oracle, PostgreSQL, SQLite 2 and 3, and Sybase ASE are supported.
K.E.T.T.L.E (Kettle ETTL Environment) is a meta- data driven ETL (Extraction, Transformation, Transportation, and Loading) tool. This means that no code has to be written to perform complex data transformations. It is possible to create plugins to do custom transformations or access proprietary data sources. Kettle supports most databases on the market, and has native support for slowly changing dimensions on most database platforms.
LiteSQL is a C++ library that integrates C++ objects tightly to a relational database and thus provides an object persistence layer. LiteSQL supports SQLite3, PostgreSQL, and MySQL as backends. LiteSQL creates tables, indexes, and sequences to database and upgrades schema when needed. In addition to object persistence, LiteSQL provides object relations which can be used to model any kind of C++ data structures. Objects can be selected, filtered, and ordered using a template- and class-based API with type checking at compile time.
JayBird is JCA/JDBC driver suite for connecting to Firebird database servers. It was based on Borland's InterClient JDBC driver and uses the new JCA standard, which specifies an architecture in which an application server can cooperate with a driver so that the application server manages transactions, security, and resource pooling, and the driver supplies only the connection functionality. It also supports JDBC.
SPTK (Simply Powerful Toolkit) is a cross-platform toolkit that provides a set of C++ classes for fast and easy application development. It provides GUI components that use FLTK, and features database support with seamless connection to GUI components. There are drivers for use of SQLite and PostgreSQL directly, as well as support for other database engines through UnixODBC. SPTK includes many classes for working with strings, dynamic arrays, and maps, and is faster and has a smaller footprint than STL. It also supports reading, writing, and creating Excel 7 files, high-level GUI components with dataset support, support for automatic layouts, and support for Aspell.
JDBCImporter provides a consistent mechanism for importing data from a file to a database, exporting data from a database to a file, and generating data. It can run from the command line using an XML config file or from inside an Ant build script. It works with CSV, fixed data, and XML files and supports numbers, strings, and date/times as database column types. Custom classes can be used to parse different file formats, format column values into different file formats, translate column values before importing or after exporting, or allocate or release JDBC connections.