Skip to content

Cyxuan0311/Paker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

271 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paker :A modern intelligent C++ package manager

Paker Logo

C++17 CMake License Build Status

现代化智能 C++ 包管理器 | 高性能 | 智能缓存 | 智能推荐 | 异步I/O

项目简介

Paker 是一个用 C++ 编写的现代化 C++ 包管理器,采用服务导向架构设计,支持全局缓存模式智能依赖管理冲突检测与解决性能监控和诊断工具。具备精确的文件跟踪功能,确保依赖包的完整安装和清理。提供友好的彩色 CLI 输出,包括表格化显示、进度条和优化的依赖树可视化。集成GitHub API智能推荐系统,基于项目特征和GitHub热门项目提供个性化包推荐。

核心特性

智能管理 高性能 开发友好 AI推荐
全局缓存模式 异步I/O操作 彩色CLI输出 GitHub集成
智能依赖解析 并行下载 表格化显示 智能推荐
冲突检测解决 增量更新 进度条显示 项目分析
版本回滚系统 内存优化 依赖树可视化 热门包推荐

主要功能

智能包管理

  • 全局缓存模式:多项目共享包,节省空间和时间
  • 智能依赖解析:自动检测和解决版本冲突、循环依赖
  • 版本回滚系统:支持快速、安全地回滚到之前的版本
  • 冲突检测解决:强大的依赖冲突检测与解决机制

性能优化

  • 异步I/O操作:使用异步文件操作和网络下载,减少阻塞
  • 并行下载:同时下载多个包,安装速度提升2-5倍
  • 增量更新:只下载变更文件,减少80-90%下载时间
  • 缓存预热:启动时预加载常用包,首次使用速度提升70%+

智能算法

  • 自适应负载均衡:根据系统负载自动调整并发工作线程数量
  • 智能缓存策略:基于访问模式动态调整缓存策略
  • 预测性预加载:基于依赖关系预测并预加载可能需要的包
  • 自适应重试机制:根据网络状况调整重试次数和延迟时间

AI智能推荐

  • GitHub项目分析:自动检测和分析GitHub项目特征
  • 智能包推荐:基于项目类型、依赖关系、性能需求等十二维度推荐
  • 热门包推荐:基于GitHub stars和流行度推荐热门包
  • 相似项目分析:查找相似项目并推荐其使用的包
  • 实时数据更新:基于GitHub API实时获取最新推荐数据

性能指标

优化项目 性能提升 说明
并行下载 2-5倍 同时下载多个包
增量更新 80-90% 只下载变更文件
缓存预热 70%+ 首次使用速度提升
增量解析 60-80% 智能缓存解析结果
异步I/O 3-10倍 异步文件操作和网络下载
内存优化 50-80% 智能内存池、零拷贝I/O
智能缓存 85%+ LRU算法管理缓存命中率

快速开始

基本使用

# 初始化项目
Paker init

# 添加依赖包
Paker add fmt

# 列出依赖
Paker list

# 查看依赖树
Paker tree

高级功能

# 并行安装多个包
Paker add-p fmt spdlog nlohmann-json

# 缓存管理
Paker cache status
Paker cache clean --smart

# 回滚管理
Paker rollback fmt --list
Paker rollback fmt 1.0.0

# 性能监控
Paker perf
Paker analyze

# 智能推荐
Paker suggestion

# 包安装与卸载
Paker install fmt
Paker install-p fmt spdlog nlohmann-json
Paker uninstall fmt

开发模式

# 启用开发模式查看高级命令
Paker --dev cache-migrate
Paker --dev io --test
Paker --dev parse --validate

架构设计

Paker 采用现代化的服务导向架构(SOA)设计:

graph TB
    A[CLI Interface] --> B[Service Container]
    B --> C[Dependency Resolver]
    B --> D[Cache Manager]
    B --> E[Parallel Executor]
    B --> F[Performance Monitor]
    B --> G[Incremental Updater]
    
    C --> H[Conflict Detector]
    C --> I[Version Manager]
    D --> J[LRU Cache]
    D --> K[Memory Pool]
    E --> L[Async I/O]
    F --> M[Diagnostic Tools]
    G --> N[File Tracker]
Loading

项目结构

Paker/
├── include/Paker/           # 头文件目录
│   ├── core/               # 核心功能模块
│   ├── dependency/         # 依赖管理模块
│   ├── conflict/          # 冲突检测与解决
│   ├── commands/           # CLI命令模块
│   ├── monitor/            # 监控与诊断模块
│   ├── cache/              # 缓存管理模块
│   ├── simd/               # SIMD优化模块
│   └── network/            # 网络优化模块
├── src/Paker/              # 源代码实现
│   ├── core/               # 核心功能实现
│   ├── dependency/         # 依赖管理实现
│   ├── conflict/          # 冲突检测实现
│   ├── commands/           # 命令实现
│   ├── monitor/            # 监控实现
│   ├── cache/              # 缓存实现
│   ├── simd/                # SIMD优化实现
│   └── network/             # 网络优化实现
├── test/                   # 测试文件
│   ├── unit/               # 单元测试
│   └── integration/        # 集成测试
├── examples/               # 示例代码
├── scripts/                # 构建和优化脚本
├── docs/                   # 项目文档
└── CMakeLists.txt          # 构建配置

文档导航

文档类型 文档名称 描述
快速开始 命令行使用指南 详细的命令行功能说明和使用示例
命令参考 命令参考 快速命令查询表,适合日常使用
功能特性 功能特性详解 深入了解 Paker 的所有功能特性
包安装 Install命令详解 包安装、卸载和系统集成功能
架构优化 头文件优化 编译性能优化和头文件管理
网络优化 网络优化 HTTP/2、连接池、CDN集成
SIMD优化 SIMD优化 SIMD指令集加速数据处理
智能补全 智能补全 智能命令补全系统(bash/zsh)
智能推荐 智能推荐指南 GitHub集成的智能包推荐系统

技术栈

核心依赖

依赖库 版本 用途 状态
glog 最新 日志记录 ✅ 必需
OpenSSL 最新 加密和哈希计算 ✅ 必需
CURL 最新 网络下载和HTTP客户端 ✅ 必需
jsoncpp 最新 JSON解析和GitHub API ✅ 必需
zlib 最新 数据压缩和解压缩 ✅ 必需
OpenMP 最新 并行计算支持 ✅ 必需
stdc++fs 内置 std::filesystem支持 ✅ 自动
SIMD指令集 自动检测当前CCPU SSE2/SSE4.2/AVX2/AVX512优化 ✅ 可选

系统要求

组件 要求 说明
编译器 C++17+ 支持现代C++特性
构建系统 CMake 3.10+ 跨平台构建
版本控制 Git 依赖包管理
操作系统 POSIX兼容 Linux、macOS、WSL等

构建和测试

安装依赖

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install build-essential cmake libglog-dev libssl-dev libcurl4-openssl-dev libjsoncpp-dev zlib1g-dev libomp-dev

CentOS/RHEL:

sudo yum install gcc-c++ cmake glog-devel openssl-devel libcurl-devel jsoncpp-devel zlib-devel libomp-devel

macOS:

brew install cmake glog openssl curl jsoncpp zlib libomp

构建项目

# 构建项目
mkdir build && cd build
cmake ..
make -j4

# 运行测试
./build/test/PakerUnitTests

# 运行性能测试
./scripts/performance_test.sh


### 智能命令提示

# Bash 用户
source scripts/completion/paker-completion.bash
echo 'source /path/to/paker/scripts/completion/paker-completion.bash' >> ~/.bashrc

# Zsh 用户
source scripts/completion/_paker
echo 'source /path/to/paker/scripts/completion/_paker' >> ~/.zshrc

License

MIT

About

Paker: A modern C++ package manager with intelligent dependency management, colorful CLI visualization, and GitHub-powered package recommendations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors