Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/USCiLab/cereal
A C++11 library for serialization
https://github.com/USCiLab/cereal
c-plus-plus cereal serialization
Last synced: 13 days ago
JSON representation
A C++11 library for serialization
- Host: GitHub
- URL: https://github.com/USCiLab/cereal
- Owner: USCiLab
- License: bsd-3-clause
- Created: 2013-06-25T23:18:45.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T12:53:39.000Z (3 months ago)
- Last Synced: 2024-10-22T21:43:08.325Z (17 days ago)
- Topics: c-plus-plus, cereal, serialization
- Language: C++
- Size: 17.6 MB
- Stars: 4,212
- Watchers: 152
- Forks: 758
- Open Issues: 320
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-game-engine-dev - Cereal - Header-only C++11 serialization library. (Libraries / C++)
- awesome - USCiLab/cereal - A C++11 library for serialization (C/C++ / Miscs)
- AwesomeCppGameDev - cereal
- awesome-code-for-gamedev - USCiLab/cereal - A C++11 library for serialization (Objects - Entity, Actor / Saving/Loading Objects, Compositing Packets)
- awesome-practical-cpp - USCiLab/cereal - A C++11 library for serialization. ![stars](https://img.shields.io/github/stars/USCiLab/cereal?style=flat-square) ![license](https://img.shields.io/github/license/USCiLab/cereal?style=flat-square) (Serialization)
- awesome-practical-cpp - USCiLab/cereal - A C++11 library for serialization. ![stars](https://img.shields.io/github/stars/USCiLab/cereal?style=flat-square) ![license](https://img.shields.io/github/license/USCiLab/cereal?style=flat-square) (Serialization)
README
cereal - A C++11 library for serialization
==========================================cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone.
### cereal has great documentation
Looking for more information on how cereal works and its documentation? Visit [cereal's web page](https://USCiLab.github.io/cereal) to get the latest information.
### cereal is easy to use
Installation and use of of cereal is fully documented on the [main web page](https://USCiLab.github.io/cereal), but this is a quick and dirty version:
* Download cereal and place the headers somewhere your code can see them
* Write serialization functions for your custom types or use the built in support for the standard library cereal provides
* Use the serialization archives to load and save data```cpp
#include
#include
#include
#include
struct MyRecord
{
uint8_t x, y;
float z;
template
void serialize( Archive & ar )
{
ar( x, y, z );
}
};
struct SomeData
{
int32_t id;
std::shared_ptr> data;
template
void save( Archive & ar ) const
{
ar( data );
}
template
void load( Archive & ar )
{
static int32_t idGen = 0;
id = idGen++;
ar( data );
}
};int main()
{
std::ofstream os("out.cereal", std::ios::binary);
cereal::BinaryOutputArchive archive( os );SomeData myData;
archive( myData );return 0;
}
```### cereal has a mailing list
Either get in touch over email or [on the web](https://groups.google.com/forum/#!forum/cerealcpp).
## cereal has a permissive license
cereal is licensed under the [BSD license](http://opensource.org/licenses/BSD-3-Clause).
## cereal build status
* [![Linux build status](https://github.com/USCiLab/cereal/actions/workflows/ci.yml/badge.svg)](https://github.com/USCiLab/cereal/actions/workflows/ci.yml)
* [![Mac build status](https://github.com/USCiLab/cereal/actions/workflows/ci-macos.yml/badge.svg)](https://github.com/USCiLab/cereal/actions/workflows/ci-macos.yml)
* [![Windows build status](https://ci.appveyor.com/api/projects/status/91aou6smj36or0vb/branch/master?svg=true)](https://ci.appveyor.com/project/AzothAmmo/cereal/branch/master)---
Were you looking for the Haskell cereal? Go here.