Skip to content

Commit 2502cfa

Browse files
authored
Merge pull request #2 from SergeyMakeev/zmeya-upd
Migrate CI to GitHub Actions and refactor memory allocation in Zmeya
2 parents 36ddd21 + 3c6864e commit 2502cfa

File tree

7 files changed

+204
-74
lines changed

7 files changed

+204
-74
lines changed

.github/workflows/build.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: build
2+
3+
on: [push]
4+
5+
jobs:
6+
build-unix:
7+
strategy:
8+
matrix:
9+
os: [ubuntu, macos]
10+
compiler: [g++, clang++]
11+
defines: [standard]
12+
exclude:
13+
- os: macos
14+
compiler: g++
15+
name: ${{matrix.os}} ${{matrix.compiler}}
16+
runs-on: ${{matrix.os}}-latest
17+
steps:
18+
- uses: actions/checkout@v1
19+
- name: Update submodules
20+
run: git submodule update --init --recursive
21+
- name: CMake Configure
22+
run: mkdir build && cd build && cmake ..
23+
- name: Build
24+
run: cd build && cmake --build . --config Release
25+
- name: Run unit tests
26+
run: cd build && ./ZmeyaTest
27+
build-windows:
28+
runs-on: windows-latest
29+
strategy:
30+
matrix:
31+
arch: [Win32, x64]
32+
defines: [standard]
33+
steps:
34+
- uses: actions/checkout@v1
35+
- name: Update submodules
36+
run: git submodule update --init --recursive
37+
- name: CMake Configure
38+
run: mkdir build && cd build && cmake ..
39+
- name: Build
40+
run: cd build && cmake --build . --config Release
41+
- name: Run unit tests
42+
run: build/Release/ZmeyaTest.exe

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
build
33
*.log
44
*.zm
5+
CoverageReport-*

.travis.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.12)
22
set(PROJ_NAME ZmeyaTest)
33
project(${PROJ_NAME})
44

5-
set (CMAKE_CXX_STANDARD 11)
5+
set (CMAKE_CXX_STANDARD 17)
66

77
add_definitions(-DZMEYA_ENABLE_SERIALIZE_SUPPORT)
88

@@ -24,6 +24,7 @@ set(ZMEYA_SOURCES
2424
)
2525

2626
add_executable(${PROJ_NAME} ${ZMEYA_SOURCES})
27+
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJ_NAME})
2728

2829
if(MSVC)
2930
target_compile_options(${PROJ_NAME} PRIVATE /W4 /WX)

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021 Sergey Makeev
3+
Copyright (c) 2021-2025 Sergey Makeev
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
# Zmeya [![Build Status](https://travis-ci.org/SergeyMakeev/Zmeya.svg?branch=main)](https://travis-ci.org/SergeyMakeev/Zmeya) [![Build status](https://ci.appveyor.com/api/projects/status/qllqgshfy9cjme2q?svg=true)](https://ci.appveyor.com/project/SergeyMakeev/zmeya/) [![codecov](https://codecov.io/gh/SergeyMakeev/Zmeya/branch/main/graph/badge.svg?token=V07QJQX2NT)](https://codecov.io/gh/SergeyMakeev/Zmeya) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg)
1+
# Zmeya
22

3-
Zmeya is a header-only C++11 binary serialization library designed for games and performance-critical applications.
3+
[![Actions Status](https://github.com/SergeyMakeev/Zmeya/workflows/build/badge.svg)](https://github.com/SergeyMakeev/Zmeya/actions)
4+
[![codecov](https://codecov.io/gh/SergeyMakeev/Zmeya/graph/badge.svg?token=V07QJQX2NT)](https://codecov.io/gh/SergeyMakeev/Zmeya)
5+
[![Build status](https://ci.appveyor.com/api/projects/status/qllqgshfy9cjme2q?svg=true)](https://ci.appveyor.com/project/SergeyMakeev/zmeya)
6+
![MIT](https://img.shields.io/badge/license-MIT-blue.svg)
7+
8+
Zmeya is a header-only C++11/17 binary serialization library designed for games and performance-critical applications.
49
Zmeya is not even a serialization library in the usual sense but rather a set of STL-like containers that entirely agnostic for their memory location and movable. As long as you use Zmeya data structures + other trivially_copyable, everything just works, and there is no deserialization cost. You can memory-map a serialized file and immediately start using your data. There are no pointers fixup, nor any other parsing/decoding needed. You can also serialize your data and send it over the network, there is no deserialization cost on the receiver side, or you can even use Zmeya for interprocess communication.
510

611
# Features

0 commit comments

Comments
 (0)