用简单的代码, 写出毫无妥协性能的程序
此项目正在重构阶段, 请前往Release页面查看最新的稳定版本
形随意动旗下项目, 项目起始日期为2017年10月15日
版本: 1.2 Dev Beta
Language: English
稳定版本可在Release页面中找到
为了PHP与Python用户创建的快速开发且跨平台的C++框架
支持系统: LINUX / WIN / MacOS
支持CPU架构: x86(i386) / x64(x86_64) / ARMv5 / ARMv6 / ARMv7 / ARMv8
我们没有对大端序(Big-Endian)的CPU机器进行测试, 请注意, 如果您在一台大端序(Big-Endian)和一台小端序(Small-Endian)的机器上进行Socket连接, 他们交换的信息可能不会按照预测的那样进行
所幸现在大多数的CPU都是小端序的
形随意动作品
贡献列表: 年迈的老秋风
- 包含库:
- 多线程池
- 多线程
- 文件读写
- 文件信息读取
- TLS &
DTLS& TCP & UDP Sockets 套接字 - MySQL / MariaDB(使用MariaDB C Connector)
- 加密库(AES,RSA,Base64,Md5,SHA1/SHA256)
- 压缩库(Deflate-Gzip, Deflate Zlib, Brotli)
- HTTP(s)请求
- JSON
- HTTP1.X解析器
- 国际编码转换
- 正则表达式匹配/替换/查找
- HTTP服务器(支持Websocket服务器)
- 环境依赖:
- POSIX/Windows系统
- C++ 11
Socket库以Libuv为底层, 开发了跨平台的Socket库.
根据测试, Release版本在1万并发的情况下延时仅240ms.
EasyCrossPlatform的发展是由下面几个库驱动的:
LibUV - CrossPlatform套接字完全基于此库编写, 我给他写了一层包装库.
Crypto++ - 加密库, 未来的EasyCrossPlatform加密库会基于此加密库.
Crypto++ Examples - Crypto++ AES例子, EasyCrossPlatform AES 加密库基于此实例搭建
MariaDB - MySQL / MariaDB 连接器.
JSONCPP - 一个魔改版的JSONCPP, 比原版的快速很多, EasyCrossPlatform的JSON解析库完全基于此库编写
mbedtls - 一个SSL/TLS和其他加密方法的库, 用于编写TLS加密的套接字
whereami - 两个文件的小型库, 告诉程序它自己在哪
Brotli - 谷歌Brotli压缩算法库
iconv - Iconv国际编码库
iconv-win - Iconv 和 VC++ 一起编译的工程. 本人在此基础上增加了一部分文件让他支持跨平台编译
WebSocket - C++ WebSocket(RFC6455)实现. 本人在此基础上修改了一部分文件以修复部分Bug和解决消息粘包问题
以上项目的协议完全保持原样, 请务必参照他们的项目工程页面
我们曾考虑过使用"MyGUI"库, 但是它包含了太多的依赖且在每个桌面环境中, OPENGL的配置都可以是不一样的. 如果您需要用户界面, 我们推荐使用MyGUI和它的OPENGL2.0实现.
"使用更少的依赖, 使用更少的代码"
大家都爱C++, 但是并没有任何好用的库, 来帮助初学者快速上手C++的多线程, 网络, 用户交互开发, 同时享受C++带来的无与伦比的速度与效率优势
受到 Reasoning 库的影响, 但是这个库自2008年便不再开发
用EasyCrossPlatform开发, 可以有效的减少代码行数, 意味着更少Bug和溢出漏洞的可能性. EasyCrossPlatform在实现层趋向于将底层代码封装的更简易, 但是仍旧保留不妥协的性能
Ruki - Xmake作者, 帮助我完成了许多编译文件的构建.
此项目仍在早期开发阶段, 且并没有考虑开始发行, Beta版都不! 不过如果您等不及了, 可以编译此库以使用它.
- 我们使用XMake来简化我们的编译过程, 您需要首先安装Xmake.
- 在/extlibs/MariaDB文件夹中选择您系统对应的正确版本, 并将系统版本文件夹内的文件拷贝到/extlibs目录下
- e.g.
- 复制 extlibs/mariadb/Win_x86/mariadbclient.lib 到 extlibs/mariadbclient.lib
- 复制 extlibs/mariadb/Win_x86/mariadb.lib 到 extlibs/mariadb.lib
- 复制 extlibs/mariadb/Win_x86/mariadb.dll 到 extlibs/mariadb.dll
- 如果您是
- 以下其中一种 Linux 系统的用户, 你需要从下方命令行代码中运行一个(运行您系统的对应命令), 原生Linux用户无需执行下列代码中的任何一个
xmake f -p solaris
xmake f -p zos
xmake f -p freebsd
xmake f -p dragonflybsd
xmake f -p openbsd
xmake f -p netbsd
- 目录下运行xmake即可生成静态/动态链接库.
(注意Windows和Linux的库互不通用, 不同版本的Linux静态库也不通用).
欢迎提交Pull Request.
您也可以通过测试来提交
注意, 在您提交Pull Request请求前, 请您对您的API进行测试. 谢谢!