Baker is a lightweight and efficient package manager for C/C++ libraries. It simplifies the process of downloading, managing, and linking libraries in C/C++ projects. The system consists of two primary components:
- Baker Client: A C++ application designed to efficiently handle package management on the client side.
- Baker Server: A Java-based backend built using Spring Boot, providing scalable and stable package hosting and management.
The Baker Client is a lightweight C++ tool designed to operate efficiently with minimal system resource requirements. It organizes library files in structured directories and provides easy integration with CMake.
- Resource Efficiency: Built in C++ for optimal performance.
- Directory Structure: Predefined folders for better library management:
header/: Contains library headers.src/: Stores source files.bin/: Holds binary files.debug/: Contains debug versions of binaries and libraries.
- CMake Integration: Provide a cmake configuration file to link all libraries seamlessly.
- REST Communication: Uses
restclientto communicate with the Baker Server.
- C++ compiler (e.g.,
g++) restclientlibrary installednlohmann/json.hpplibrary installed
-
Clone the repository in the root dir:
git clone https://github.com/Ayushman2004/baker-client.git cd baker-client -
Compile the client:
- vcpkg prefered for compiling
main.cpp
- vcpkg prefered for compiling
-
Run the client:
.\baker.exe
-
Install a package:
.\baker.exe install <package_name>
The library files will be stored in the appropriate folders (
header/,src/,bin/,debug/) for easy access. -
Linking with CMake: Use the pre-configured CMake file by Baker to link libraries:
include("C:/baker-client/CommonLibs.cmake")
This project is licensed under the Apache-2.0 License.