Skip to content
 
 

Repository files navigation

简体中文

Powering-Anybackup Scenario-Foundation%20Library-00699C Language-C%2B%2B%20%26%20Go-3776AB

Foundation Library

This repository is part of the AnyBackup project.
For the overall project introduction, please refer to the AnyBackup main repository.

1. Overview

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.

2. Project Structure

2.1 Repository Structure

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

2.2 Module Description

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

3. Requirements

Runtime Environment

This repository does not directly provide standalone running services, it is only used as a foundation library or dependency component of AnyBackup V9.

Development Environment

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++

4. Build Guide

C++ Project Build

cd flora/<module_name>
mkdir build && cd build
cmake ..
make -j$(nproc)

Go Project Build

cd flora/<module_name>
go mod download
go build ./...

Build Artifacts

After the build is complete, the artifacts are output to the ./binary/ directory or the output directory specified by the module.

5. Development Guide

Release Structure

Linux_el7_x64/
├── Debug/
└── Release/
    ├── basecore/
    │   ├── include/
    │   ├── cmake/
    │   │   └── basecore-config.cmake
    │   └── lib/
    │       └── libbasecore.so
    ├── boost/
    ├── cmake/
    └── ...

Third-party Dependencies

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

License

About

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.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages