Bond alternatives and similar packages
Based on the "Serialization" category.
Alternatively, view Bond alternatives based on common mentions on social networks and blogs.
Protocol Buffers10.0 9.9 L1 Bond VS Protocol BuffersProtocol Buffers - Google's data interchange format
Json.NET9.8 3.9 L1 Bond VS Json.NETJson.NET is a popular high-performance JSON framework for .NET
Protobuf.NET9.1 6.1 L2 Bond VS Protobuf.NETProtocol Buffers library for idiomatic .NET
MessagePack for C# (.NET, .NET Core, Unity, Xamarin)Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
ZeroFormatter8.0 0.0 Bond VS ZeroFormatterInfinitely Fast Deserializer for .NET, .NET Core and Unity.
Utf8Json7.8 0.0 Bond VS Utf8JsonDefinitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).
Jil7.7 0.0 L1 Bond VS JilFast .NET JSON (De)Serializer, Built On Sigil
Magicodes.IE7.5 8.6 Bond VS Magicodes.IEImport and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html.
ServiceStack.Text7.5 6.5 L2 Bond VS ServiceStack.Text.NET's fastest JSON, JSV and CSV Text Serializers
LitJSON7.1 4.0 Bond VS LitJSONJSON library for the .Net framework
FileHelpers6.9 4.5 L2 Bond VS FileHelpersThe FileHelpers are a free and easy to use .NET library to read/write data from fixed length or delimited records in files, strings or streams
Msgpack-Cli6.2 0.0 L2 Bond VS Msgpack-CliMessagePack implementation for Common Language Infrastructure / msgpack.org[C#]
Ceras4.8 0.0 Bond VS CerasUniversal binary serializer for a wide variety of scenarios https://discord.gg/FGaCX4c
Wire4.7 0.0 L5 Bond VS WireBinary serializer for POCO objects
ProtoBuf4.6 3.9 L1 Bond VS ProtoBufC# code generator for reading and writing the protocol buffers format
FlatSharp4.4 3.9 Bond VS FlatSharpFast, idiomatic C# implementation of Flatbuffers
FsPickler4.3 0.0 Bond VS FsPicklerA fast multi-format message serializer for .NET
Hyperion4.1 3.3 L5 Bond VS HyperionPolymorphic serialization for .NET
JsonSubTypes4.0 0.0 Bond VS JsonSubTypesDiscriminated Json Subtypes Converter implementation for .NET
ObjectDumper.NET3.8 6.2 Bond VS ObjectDumper.NETObjectDumper is a utility which aims to serialize C# objects to string for debugging and logging purposes.
CsvExport3.3 0.0 Bond VS CsvExportVery simple CSV-export tool for C#
hjson-cs2.7 0.0 L3 Bond VS hjson-csHjson for C#
Migrant2.6 0.0 L4 Bond VS MigrantFast and flexible serialization framework usable on undecorated classes.
Bois2.3 0.0 L1 Bond VS BoisSalar.Bois is a compact, fast and powerful binary serializer for .NET Framework. With Bois you can serialize your existing objects with almost no change.
FluentSerializer1.1 10.0 Bond VS FluentSerializerA fluent take on serializer libraries
TcpClientIo0.8 0.0 Bond VS TcpClientIoTcpClientIo Wrapper of TcpClient what help focus on WHAT you transfer over TCP, not HOW
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Bond or a related project?
Bond is an open-source, cross-platform framework for working with schematized data. It supports cross-language serialization/deserialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
Bond is published on GitHub at https://github.com/microsoft/bond/.
For details, see the User's Manuals:
- Bond-over-gRPC (deprecated: will be removed in May 2022)
gbc, the Bond compiler/codegen tool
- See also
the compiler library that
- See also the compiler library that powers
For a discussion about how Bond compares to similar frameworks see Why Bond.
Bond C++ library requires some C++11 features (currently limited to those supported by Visual C++ 2015); a C++11 compiler is required. Additionally, to build Bond you will need CMake (3.1+), Haskell Stack (1.5.1+) and Boost (1.61+).
Additionally, Bond requires RapidJSON. The Bond repository has a Git submodules for RapidJSON. It should be cloned with the
git clone --recursive https://github.com/microsoft/bond.git
If you already have RapidJSON and would like to build against it, add argument
-DBOND_FIND_RAPIDJSON=TRUE to the CMake invocation. It will use find_package(RapidJSON). If you do not provide a RapidJSON library, Bond will also install RapidJSON.
Following are specific instructions for building on various platforms.
Bond must be built with C++11 compiler. We test with Clang (3.8) and GNU C++ (5.4). We recommend Clang as it's faster with template-heavy code like Bond.
Run the following commands to install the minimal set of packages needed to build the core Bond library on Ubuntu 14.04:
sudo apt-get install \ clang \ cmake \ zlib1g-dev \ libboost-dev \ libboost-thread-dev
Additionally, you need the Haskell Tool Stack. If your distro isn't shipping a new enough version of it, you may encounter some non-obvious build failures, so we recommend installing the latest Stack outside of package management:
curl -sSL https://get.haskellstack.org/ | sh
In the root
bond directory run:
mkdir build cd build cmake .. make sudo make install
build directory is just an example. Any directory can be used as the
To build the Bond Python module and all the C++/Python tests and examples, a few more packages are needed.
sudo apt-get install \ autoconf \ build-essential \ libboost-date-time-dev \ libboost-python-dev \ libboost-test-dev \ libtool \ python2.7-dev
CMake needs to be re-run with different options. This can be done after building just the core libraries: the build tree will simply be updated with the new options.
cd build # or wherever you ran CMake before
Running the following command in the
build directory will build and execute all
the tests and examples:
make --jobs 8 check sudo make install # To install the other libraries just built
(The unit tests are large so you may want to run 4-8 build jobs in parallel, assuming you have enough memory.)
Install Xcode and then run the following command to install the required packages using Homebrew (http://brew.sh/):
brew install \ cmake \ haskell-stack \ boost \ boost-python
(boost-python is optional and only needed for Python support.)
Bond can be built on macOS using either standard *nix makefiles or Xcode. In
order to generate and build from makefiles, in the root
bond directory run:
mkdir build cd build cmake .. make sudo make install
Alternatively, you can generate Xcode projects by passing the
-G Xcode option
cmake -G Xcode ..
You can build and run unit tests by building the
check target in Xcode or by
running make in the
make --jobs 8 check
Note that if you are using Homebrew's Python, you'll need to build boost-python from source:
brew install --build-from-source boost-python
and tell cmake the location of Homebrew's libpython by setting the
PYTHON_LIBRARY variable, e.g.:
cmake .. \ -DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
Install the following tools:
- Visual Studio 2015 or 2017
- VS2017 is required to build C# Bond from source
- .NET Core SDK (https://www.microsoft.com/net/core)
- Alternative to VS2017 for building C# Bond from source
- CMake (http://www.cmake.org/download/)
- Haskell Stack (https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows)
If you are building on a network behind a proxy, set the environment variable
Now you are ready to build the C# version of Bond. Open the solution file
cs\cs.sln in Visual Studio and build as usual. The C# unit tests can
also be run from within the solution.
To build using the .NET Core SDK:
dotnet restore cs\cs.sln dotnet msbuild cs\cs.sln
The C++ and Python versions of Bond additionally require:
- Boost 1.61+ (http://www.boost.org/users/download/)
- Python 2.7 (https://www.python.org/downloads/)
You may need to set the environment variables
to specify where Boost and its pre-built libraries for your environment (MSVC 12 or MSVC 14) can be
set BOOST_ROOT=D:\boost_1_61_0 set BOOST_LIBRARYDIR=D:\boost_1_61_0\lib64-msvc-14.0
The core Bond library and most examples only require Boost headers. The pre-built libraries are only needed for unit tests, and Python. If Boost or Python libraries are not found on the system, then some tests and examples will not be built.
To generate a solution to build the Bond Core C++ and Python with Visual
Studio 2015 run the following commands from the root
mkdir build cd build set PreferredToolArchitecture=x64 cmake -G "Visual Studio 14 2015 Win64" ..
PreferredToolArchitecture=x64 selects the 64-bit toolchain which
dramatically improves build speed. (The Bond unit tests are too big to build
with 32-bit tools.)
cmake you can also use
cmake-gui and specify configuration
settings in the UI. This configuration step has to be performed only once. From
then on you can use the generated solution
build\bond.sln from Visual Studio
or build from the command line using
cmake --build . --target cmake --build . --target INSTALL
To build and execute the unit tests and examples run:
cmake --build . --target check -- /maxcpucount:8
Alternatively, you can build and install Bond using the vcpkg dependency manager:
git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.bat ./vcpkg integrate install ./vcpkg install bond
The Bond port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request in the vcpkg repository.
Interested in contributing to Bond? Take a look at our contribution guidelines to get started.