This repository is part of the AnyBackup project.
For the overall project introduction, please refer to the AnyBackup main repository.
This repository is the foundation library repository of the AnyBackup V9 project, mainly used to provide C++ and Go language basic components, CMake framework, unified compilation parameters, reduce the workload of each product line, and help each product to carry out platform expansion more clearly.
foundationLibrary/
├── flora/ # Main source code directory
│ ├── flora_groot/ # C++ foundation library
│ ├── flora_groot2_epms/ # EPMS module
│ ├── flora_groot2_esf/ # ESF module
│ ├── flora_leveldb/ # LevelDB wrapper
│ ├── flora_tikv_kv/ # TiKV KV storage
│ ├── flora_tikv_pd/ # TiKV PD component
│ ├── greed/ # Go common framework
│ ├── flora_aiofile/ # Async file IO
│ ├── flora_ipc-shm/ # IPC shared memory
│ └── ... # Other modules
├── third-party/ # Third-party dependency binaries
├── README.md # English README
├── README.zh-CN.md # Chinese README
└── LICENSE # License file
| Module | Path | Description | Module README |
|---|---|---|---|
| flora_groot | flora/flora_groot/ |
C++ foundation library core, providing appcore, basecore, boost, cmake, datachannel and other components | README |
| flora_aiofile | flora/flora_aiofile/ |
Async file IO component | README |
| flora_ipc-shm | flora/flora_ipc-shm/ |
IPC shared memory component | README |
| flora_leveldb | flora/flora_leveldb/ |
LevelDB database wrapper | README |
| flora_opendisk | flora/flora_opendisk/ |
Disk operation component | README |
| flora_tikv_kv | flora/flora_tikv_kv/ |
TiKV KV storage component | README |
| flora_tikv_pd | flora/flora_tikv_pd/ |
TiKV PD scheduling component | README |
| greed | flora/greed/ |
Go cluster deployment common framework, providing configuration management, command execution, middleware, ORM and other functions | README |
| backup-core | flora/backup-core/ |
Backup core component | README |
| third-party | third-party/ |
Third-party dependency binary directory | N/A |
This repository does not directly provide standalone running services, it is only used as a foundation library or dependency component of AnyBackup V9.
| Type | Requirement |
|---|---|
| Operating System | Linux (CentOS 7+ / RHEL 7+) |
| CPU Architecture | x86_64 |
| C++ Standard | C++11 or higher |
| Go Version | 1.14.1 or higher |
| CMake Version | 3.10+ |
| Build Tools | make, gcc/g++ |
cd flora/<module_name>
mkdir build && cd build
cmake ..
make -j$(nproc)cd flora/<module_name>
go mod download
go build ./...After the build is complete, the artifacts are output to the ./binary/ directory or the output directory specified by the module.
Linux_el7_x64/
├── Debug/
└── Release/
├── basecore/
│ ├── include/
│ ├── cmake/
│ │ └── basecore-config.cmake
│ └── lib/
│ └── libbasecore.so
├── boost/
├── cmake/
└── ...
The third-party/ directory contains pre-compiled third-party library binaries:
- Foundation libraries: boost, groot, jemalloc, leveldb
- Database drivers: mysql, ceph, mariadbodbc, unixodbc
- Network libraries: grpc, libcurl, hdfs
- Storage SDKs: vddk, fusionspheresdk, swiftfs_sdk
- Others: AES, sqlite3, protobuf, thrift