Code Synthesis is a systems software development company with a focus on build systems, object persistence, domain-specific languages (DSL) and their mappings, compiler design, code generation, and source-to-source translation for the C++ programming language.

Our products cater for a broad, embedded-to-server class of applications and are used in a wide range of industries, including aerospace, defense, telecommunications, finance, high-performance computing, biotech, and integrated circuit design. Teams at world-leading technology companies rely on our development tools and expertise to invent and build the future's most ambitious software systems, such as satellite navigation, high-energy physics experiments, warfare operation support, and DNA sequencing. All our products are open-source software and we invite you to try them in your projects.

News

Subscribe: RSS | E-mail
build2 0.4.0 released September 7, 2016
This release includes a number of major new features in the build system (support for Windows/VC, C compilation, pkg-config integration, library versioning and export model, as well as the uninstall operation) and package manager (support for repository authentication and system packages).
build2 0.3.0 released April 26, 2016
This release includes a number of new features in the build system (high fidelity builds, command line configuration overrides), package manager (support for dropping no longer necessary packages), and repository web interface (ability to run multiple instances, look and feel customizations).
build2 — C++ Build Toolchain February 3, 2016
build2 is an open source, cross-platform toolchain for building and packaging C++ code. It includes a build system, package manager, and repository web interface. We've also started cppget.org, a public repository of open source C++ packages.

This is the first alpha release and currently it is more of a technology preview rather than anything that is ready for production.

ODB 2.4.0 released February 11, 2015
Major new features in this release include support for bulk operations in Oracle and SQL Server, the ability to join and load multiple objects with a single SELECT statement execution (object loading views), as well as support for calling stored procedures in MySQL and SQL Server. This release also adds support for Visual Studio 2013, including project/solution files for all the runtime libraries, examples, and tests.
CodeSynthesis XSD 4.0.0 released July 22, 2014
Major new features in this release include support for C++11 in addition to C++98, support for ordered types, extraction of mixed and anyType/anySimpleType content, and support for make-style dependency generation. In addition, the streaming support has been improved to better handle XML namespaces and allow multi-level streaming. Finally, this release adds support for Clang as well as Visual Studio 2012 (11.0) and 2013 (12.0).
ODB 2.3.0 released October 30, 2013
The major new feature in this release is support for database schema evolution, including schema and data migration as well as soft object model changes. Other important features in version 2.3.0 include support for C++11 enum classes as well as object sections which provide the ability to split data members of a persistent class into independently loaded/updated groups.
ODB 2.2.0 released February 13, 2013
Major new features in this release include multi-database support, prepared queries, change-tracking containers, custom sessions, and automatic mapping for char[N]. This version also adds support for Qt5 in addition to Qt4 and now comes with a guide on using ODB with mobile/embedded systems.
ODB 2.1.1 released November 22, 2012
This is a bug fix-only release that fixes a number of issues in each database runtime as well as the ODB compiler.
ODB 2.1.0 released September 18, 2012
Major new features in this release include the ability to use accessor/modifier functions/expressions to access data members, support for virtual data members, the ability to define database indexes on data members, as well as support for mapping extended database types, such as geospatial types, user-defined types, and collections. The profile libraries have also been updated with the Boost profile now providing persistence support for the Uuid and Multi-Index container libraries while the Qt profile now includes the QUuid type. Finally, this release adds support for Visual Studio 2012 and Clang 3.1. Specifically, all the runtime libraries, examples, and tests now come with project/solution files for Visual Studio 2012 in addition to 2010 and 2008.
ODB 2.0.0 released May 2, 2012
Major new features in this release include support for C++11, polymorphism, composite objects ids (composite primary keys), and the NULL semantics for composite values. This release has also been tested with GCC 4.7 and Clang 3.0 with the ODB compiler now supporting the GCC 4.7 series plugin interface. With this release we are also introducing a free proprietary license for small object models.
ODB 1.8.0 released January 31, 2012
Major new features in this release are support for the Microsoft SQL Server database, including updates to the Boost and Qt profiles, support for database schemas (database namespaces), and the ability to define composite value types as C++ class template instantiations.
ODB 1.7.0 released December 7, 2011
Major new features in this release are support for the Oracle database, including updates to the Boost and Qt profiles, support for optimistic concurrency using object versioning, support for read-only/const data members, support for persistent classes without object ids, and support for SQL statement execution tracing.
ODB 1.6.0 released October 4, 2011

The major new feature in this release is the introduction of the view concept. A view is a light-weight, read-only projection of one or more persistent objects or database tables or the result of a native SQL query execution. Views can be used to load a subset of data members from objects or columns from database tables, execute and handle results of arbitrary SQL queries, including aggregate queries, as well as join multiple objects and/or database tables using object relationships or custom join conditions.

Other important features in this release include support for deleting persistent objects using a query expression, support for the NULL semantics with mapping to smart pointers, odb::nullable, or boost::optional, and support for mapping BLOB types to std::vector<char>.

ODB 1.5.0 released July 26, 2011
Major new features in this release are support for PostgreSQL, including updates to the Boost and Qt profiles, support for per-class database operations callbacks, a new NULL handling mechanism, as well as the ability to specify database default values and additional column definition options.
BoostCon 2011 ODB presentation July 19, 2011
The video and slides for the "Object-Relational Mapping with ODB and Boost" presentation at this year's BoostCon are now available.
ODB 1.4.0 released April 27, 2011
Major new features in this release include the Qt profile providing persistence support for Qt basic types, date-time types, smart pointers, and containers, support for non-polymorphic object inheritance including abstract base classes, and automatic mapping of C++ enumerations to database ENUM or integer types.
ODB 1.3.0 released April 6, 2011
Major new features in this release are support for the SQLite database, including the integration of the shared cache and unlock notification functionality for multi-threaded applications, as well as support for the GCC 4.6 plugin interface.
ODB 1.2.0 released March 16, 2011
Major new features in this release include the Boost profile providing persistence support for Boost smart pointers, containers, and value types, support for embedding database schemas into generated C++ code, and support for transparent database reconnection.
CodeSynthesis XSD/e 3.2.0 released February 15, 2011
Major new features in this release include configurable application character encoding, support for custom memory allocators, mapping of XML Schema enumerations to C++ enums, support for schema evolution, generation of clone functions for variable-length types, and improved support for XML Schema facet validation, including xs:pattern.

This release also adds official support and sample configurations for the Integrity 178b, Android, and Symbian platforms.
More news...