Code Synthesis is a systems software development company with a focus on automated 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
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.
ODB 1.1.0 released January 26, 2011
Major new features in this release include support for containers, composite (multi-column) value types, unidirectional and bidirectional object relationships with support for lazy loading, custom object pointers, object caching, as well as native SQL statement execution.
ODB - Compiler-Based ORM for C++ September 29, 2010
ODB is an open-source, compiler-based object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code.
Free proprietary license for small vocabularies August 3, 2010
A free proprietary license is now available for XSD and XSD/e. The new license allows one to use the generated code to handle small XML vocabularies in proprietary (closed-source) applications free of charge and without having to release the source code.
CodeSynthesis XSD 3.3.0 released April 28, 2010
Major new features in this release include support for uniform parsing and serialization of XML documents with varying root elements, configurable application character encoding (UTF-8, ISO-8859-1, etc.), support for stream-oriented, partially in-memory XML processing, smaller and faster generated code for polymorphic schemas, support for embedding the binary representation of the schema grammar into the application, and the generation of the detach functions that allow moving object model sub-trees without copying.

This release also adds support for the AIX 6.x, Mac OS X 10.6, Windows 7, and Windows Server 2008 operating systems as well as for the Visual Studio 2010 (10.0), GNU g++ 4.5.0, Intel C++ 11, Sun Studio 12.1, and IBM XL C++ 11 compilers. Visual Studio 2010 project and solution files are provided for all the examples.
CodeSynthesis XSD/e 3.1.0 released April 15, 2009
Major new features in the C++/Hybrid mapping include support for XML Schema polymorphism (xsi:type and substitution groups), binary serialization in XDR, CDR, and custom data representation formats, support for complete customization of the object model classes, support for default and fixed values, and support for recursive XML parsing and serialization.

This release also adds official support and sample configurations for LynxOS 4.2 and 5.0 as well as VxWorks 6.7.
CodeSynthesis XSD/e 3.0.0 released February 4, 2009
This major release adds the new Embedded C++/Hybrid mapping which provides a light-weight, tree-like object model with precise reproduction of the XML vocabulary structure and element order. The new mapping supports fully in-memory as well as hybrid, partially event-driven, partially in-memory XML processing while maintaining a small footprint and portability.

This release also adds official support for QNX 6.x, iPhone OS 2.x, and Visual Studio 2008 with Smart Devices.
CodeSynthesis XSD 3.2.0 released September 30, 2008
Major new features in the C++/Tree mapping include support for locating object model nodes with XPath queries, automatic assignment of namespace prefixes during serialization, polymorphism-aware object model comparison and printing, generation of non-copying constructors, and support for the fractionDigits and totalDigits facets during serialization. In the C++/Parser mapping: support for generation of the XML Schema namespace into a separate header file and reduced usage of virtual inheritance which results in a much smaller object code size and faster compilation.
CodeSynthesis XSD/e 2.1.0 released Junuary 11, 2008
Major new features include support for XML Schema polymorphism (xsi:type and substitution groups), support for delegation-based implementation reuse in addition to inheritance-based, automatic generation of sample serializer implementations and test drivers, support for parser and serializer reuse after an error, and the file-per-type compilation mode in addition to file-per-schema.
CodeSynthesis XSD 3.1.0 released February 7, 2008
Major new features in the C++/Tree mapping include the file-per-type compilation mode in addition to file-per-schema, support for IntelliSense, the ability to choose the identifier naming convention used in the generated code, non-copying modifier functions, and additional binary serialization examples. In the C++/Parser mapping: the file-per-type compilation mode in addition to file-per-schema and support for XML Schema polymorphism (xsi:type and substitution groups).
More news...