# A New Cross-Platform Open Source C++ Framework

DevFeed: [A New Cross-Platform Open Source C++ Framework](<https://devfeed.tech/articles/a-new-cross-platform-open-source-c-framework-21015.md>)

Original publisher: [Read original article](<https://preshing.com/20200526/a-new-cross-platform-open-source-cpp-framework>)

Author: Jeff Preshing

Published: 2020-05-26T11:50:00Z

Content type: article

Language: en

Sources: [Jeff Preshing](<https://devfeed.tech/sources/jeff-preshing.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [containers](<https://devfeed.tech/tags/containers.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [framework](<https://devfeed.tech/tags/framework.md>), [modular](<https://devfeed.tech/tags/modular.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [process](<https://devfeed.tech/tags/process.md>)

## AI overview

The article introduces Plywood, a cross-platform open-source C++ framework released from a custom game engine. Plywood provides a workspace for multiple applications, built-in modules for I/O, containers, and process creation, plus runtime reflection and serialization. It uses CMake internally and runs on Windows, Linux, and macOS.

## Source excerpt

For the past little while - OK, long while - I've been working on a custom game engine in C++. Today, I'm releasing part of that game engine as an open source framework. It's called the Plywood framework. View the documentation View on GitHub Please note that Plywood, by itself, is not a game engine! It's a framework for building all kinds of software using C++. For example, Plywood's documentation is generated with the help of a C++ parser, formatted by a Markdown parser, and runs on a custom webserver all written using Plywood. Integrating third-party libraries can a pain in C++, but Plywood aims to simplify it. Here's a short Plywood program that uses Cairo and Libavcodec to render a vector animation to a video file: And here's one that synthesizes a short music clip to an MP3: The source code for these examples is included in the Plywood repository, and everything builds and runs on Windows, Linux and macOS. Of course, Plywood also serves as the foundation for my (proprietary) game engine, which I call the Arc80 Engine. That's why Plywood came into existence in the first place. I haven't shipped a complete game using the Arc80 Engine yet, but I have made a number of prototypes with it. More on that later! What's Included In Plywood Plywood comes with: A workspace designed to help you reuse code between applications. A set of built-in modules providing cross-platform I/O, containers, process creation and more. A runtime reflection and serialization system. Here are a few more details about each component. The Workspace Most open source C++ projects are libraries that are meant to be integrated into other applications. Plywood is the opposite of that: It gives you a workspace into which source code and libraries can be integrated. A single Plywood workspace can contain several applications - a webserver, a game engine, a command-line tool. Plywood simplifies the task of building and sharing code between them. Plywood uses CMake under the hood, but you don't have t