News

CodeSynthesis XSD 4.2.0 released Oct 05, 2023
This release contains a large number of bug fixes and minor improvements that have accumulated over the years. Additionally, in this version the default C++ standard that is used by the generated code was changed from C++98 to C++11. Note also that this will be the last version that supports C++98.
ODB 2.5.0 beta 25 published Jul 31, 2023
This pre-release is compatible with GCC 13 and adds support for custom table definition options in addition to column definition options. The installation instructions now contain steps for installing offline.
build2 0.16.0 released Jul 04, 2023
The two main areas of focus in this release are the system package manager integration and more advanced functionality for more complex projects. The system package manager support includes both consumption and production of binary distribution packages, including uploading them from the CI builds. This support required a large amount of ground work which produced functionality useful in its own right, such as relocatable installations, installation filtering, and installation manifests. The more advanced functionality includes built-in support for the Objective-C/C++ and Assembler with C Preprocessor (.S) compilation, dynamic target extraction in addition to prerequisites, and support for buildfile importation.
ODB 2.5.0 beta 23 published Aug 02, 2022
This pre-release is compatible with GCC 12 and adds support for for the --std c++20 option value and includes a number of bug fixes.
build2 0.15.0 released Jul 28, 2022
The overall theme of this release is more advanced functionality that is becoming necessary as we start to use build2 to handle more complex projects. Specifically, the package manager now supports a number of more advanced dependency declaration features, including conditional dependencies, dependency alternatives, and dependency configuration. On the build system side we now have rule hints, support for dynamic dependencies in ad hoc recipes, and the ability to save user metadata in C/C++ libraries.
ODB 2.5.0 beta 21 published Oct 27, 2021
This pre-release is compatible with GCC 11 and adds support for bulk operations in PostgreSQL 14 as well as attached databases in SQLite.
build2 0.14.0 released Oct 19, 2021
The main focus of this release is support for build-time dependencies and the host/target configuration split that it necessitates. This support required a large amount of ground work which produced functionality useful in its own right, such as hermetic builds and configuration linking. Another notable new feature is ad hoc regex pattern rules.
ODB 2.5.0 beta available Mar 19, 2019
The latest 2.5.0 beta of the ODB compiler and runtime libraries can now be built and installed on all the major platforms (Linux, Windows, and Mac OS) from source packages available in the build2 cppget.org repository.
build2 0.10.0 released Mar 19, 2019
Coming shortly after 0.9.0, this is more of a maintenance release that nevertheless includes a good number of new features. It was also an opportunity to hone our release process with the overall goal of increasing the release cadence.
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.
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 04, 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 June 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 07, 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).
CodeSynthesis XSD/e 2.0.0 released November 13, 2007
This release adds the new Embedded C++/Serializer mapping which provides event-driven XML serialization, XML Schema validation, and C++ data binding. The Embedded C++/Serializer Mapping Getting Started Guide is also included.
CodeSynthesis XSD/e 1.1.0 released September 20, 2007
Major new features include parser implementations for all built-in XML Schema types, automatic generation of sample parser implementations as well as test drivers, support for parsing XML documents with varying root elements, and new chapters in the Getting Started Guide.
CodeSynthesis XSD 3.0.0 released August 1, 2007
Major new features include C++/Tree: generation of documentation in the Doxygen format, a new mapping for the XML Schema wildcards (any and anyAttribute), support for binary serialization in the XDR format, and a new Getting Started guide. C++/Parser: parser implementations for all built-in XML Schema types, automatic generation of sample parser implementations as well as test drivers, and a new Getting Started Guide.
An article published in The C++ Source May 7, 2007
An article introducing XML Data Binding in C++ was published in The C++ Source journal. It covers both in-memory and stream-oriented processing models and provides comparison to raw XML access APIs such as DOM and SAX.
CodeSynthesis XSD/e 1.0.0 released March 20, 2007
XSD/e is an open-source XML parser generator for mobile and embedded systems. It provides event-driven, stream-oriented XML parsing, XML Schema validation, and C++ data binding while maintaining a small footprint and portability. Supported embedded toolchains include GNU g++ 2.95.x-4.x.x, eMbedded Visual C++ 4.0, and Visual Studio 2005 with Smart Devices support. Precompiled binary distributions for GNU/Linux, Solaris, and Windows host development platforms are provided with this release.
CodeSynthesis XSD 2.3.1 released January 23, 2007
This release includes a number of bug fixes, support for customization of parsing constructors and serialization operators, optimizations for the run-time memory consumption and generated code size, support for Intel C++ 9.1 and IBM XL C++ 7.0 as well as for AIX on POWER/PowerPC and GNU/Linux on IA-64.
CodeSynthesis XSD in Galileo SatNav system October 27, 2006
VEGA has selected XSD as an XML to C++ data binding solution for its Galileo Mission Segment Assembly, Integration and Verification Platform (GMS AIVP). Galileo is the new European satellite navigation system developed by the European Space Agency (ESA) and Galileo Industries.
XSDBench 1.0.0 released October 17, 2006
XSDBench is a W3C XML Schema benchmark that compares the performance of validating XML parsers. Tests for Apache Xerces-C++, CodeSynthesis XSD, Gnome Libxml2, Microsoft MSXML, and Oracle XDK are provided in this release. Benchmark results are available for GNU/Linux on AMD Opteron with GCC 4.1.2, Windows on Intel Pentium 3 with VC++ 7.1, GNU/Linux on Intel Pentium 3 with Intel C++ 9.1, and GNU/Linux on IBM PowerPC 970MP with IBM XL C++ 8.0.
CodeSynthesis XSD 2.3.0 released September 19, 2006
Major new features include (C++/Tree:) customization of the generated code with the user-supplied types, suppression of generation of parsing code, generation of forward declaration headers, (C++/Parser:) validation of the attribute structure, character content and XML Schema built-in types in the generated code (perfect parser), space and time optimizations in the generated code. This version also adds support for IBM XL C++ 8.0 as well as the i686-solaris and powerpc-linux-gnu platforms.
Code Synthesis Wiki started August 22, 2006
Code Synthesis Wiki is a community knowledge base for open-source projects developed by Code Synthesis. It contains information such as FAQs, post-release notes, and tips for various platforms and compilers.
CodeSynthesis XSD 2.2.0 released July 11, 2006
Major new features include (C++/Tree:) escaping of global element names that conflicts with global type names, streaming XML serialization, serialization/deserialization to/from binary formats, code size reducing optimizations, (C++/Parser:) implementation of the validation against XML Schema in the generated code (perfect parser), and a new architecture for underlying XML parsers.
CodeSynthesis XSD 2.1.1 released May 02, 2006
This release includes a number of bug fixes, code size reducing optimizations, a new option to directly map XML Schema namespaces to C++ namespaces without the use of regular expressions, and support for GNU g++ 4.1.x.
CodeSynthesis XSD 2.1.0 released April 18, 2006
Major new features include an automatic handling of forward inheritance, (C++/Tree:) a new enum mapping with support for inheritance, back pointers to tree nodes from associated DOM nodes, code size reducing optimizations, (C++/Parser:) specialization for void as a hook argument type, support for re-use of implementations of base parsers in derived parsers using the mix-in C++ idiom, and support for uninitialized parsers.
CodeSynthesis XSD 2.0.0 released March 13, 2006
Major new features include a new cardinality calculator which is capable of handling complex containment structures, a new identifier escaping implementation, split code generation for large, monolithic schemas, and options to reduce code size by selecting which schema constructs and mapping features are being used.
CodeSynthesis XSD 1.9.0 released February 06, 2006
Major new features include support for HP-UX 11.11 and 11.23 on PA-RISC and IA-64 as well as for the following C++ compilers:
  • Intel C++ 9.0
  • HP aCC A.03.63 on PA-RISC (C++/Tree mapping only)
  • HP aCC A.06.05 on IA-64
CodeSynthesis XSD 1.8.0 released January 17, 2006
Major new features in the C++/Tree mapping:
  • Support for default and fixed values in attributes
  • Mapping for base64Binary and hexBinary implements basic buffer abstraction
Major new features in the C++/Parser mapping:
  • Support for Expat as the underlying XML parser in addition to Xerces-C++
Support for the following C++ compilers has been added in this version:
  • Sun C++ 5.8 (Studio 11)
  • Microsoft Visual C++ 8 (Visual Studio 2005)