What is DDS?
DDS is a new build, test, and packaging tool for native C and C++
libraries and applications, with a focus on simplicity, speed, and
integratability.
What makes DDS different?
Convention over configuration.
Traditional build tools have been built to cede all control to their
users. While this may sound appealing, it leads to rampant ecosystem
fragmentation that impedes the ability for us to compose our
libraries and tools.
DDS's approach is to trade this flexibility for something sorely lacking
in the C and C++ build and distribution ecosystem: Simplicity.
Does DDS replace [XYZ] build tool?
While DDS is a build tool, it is not meant as a full replacement
for all use cases of other build tools (e.g. CMake and Meson).
For many use cases, DDS will serve as a possible replacement for more
flexible build systems, especially when the build itself is far simpler
than is warranted by the flexibility offered by those tools.
Additionally, DDS is built to augment other build tools. The
output from DDS can be fed into other build and packaging systems.
Does DDS replace [XYZ] packaging tool?
Yes and no.
DDS supports dependency resolution, procurement, and building, much like
many other tools, but has a few important differences of opinion. Refer
to the documentation for more information.
Is DDS "production ready"?
At the time of writing, DDS is still in its alpha stages, is missing
several end-goal features, and will have several breaking changes before
its first "1.0" release.
Even then, DDS is ready to be used for experiments, hobby projects, and
in any place that doesn't require stability.
Is DDS free?
Yes! DDS and its source code are available free of charge.
Is DDS open source?
Yes!
The main DDS codebase is licensed under the
Mozilla Public License Version 2.0, although it is built upon
many components variously licensed as MIT, BSD, Boost, and public domain.
What platforms are supported?
DDS is built, tested, distributed, and supported on Windows, macOS,
Linux, and FreeBSD.
The Microsoft Visual C++, GNU GCC, LLVM/Clang, and AppleClang compilers
are all supported.
Is DDS centralized?
No / "not yet"
DDS's package procurement is in very early stages, and there is no
centralized repository of packages available for download.
DDS maintains a local catalog database that contain instructions it can
use to obtain packages from the internet. At the moment, this involves
cloning a Git repository, but there are plans to support catalog updates
and source distributions delivered over HTTP(S) in the future. This
includes the ability to host private package repositories.