{"id":13531647,"url":"https://github.com/InteractivePlus/EasyCrossPlatform_src","last_synced_at":"2025-04-01T20:30:32.046Z","repository":{"id":134974598,"uuid":"112515088","full_name":"InteractivePlus/EasyCrossPlatform_src","owner":"InteractivePlus","description":"⛳ An easy-to-use crossplatform C++ Library, primarily for server-side development.","archived":true,"fork":false,"pushed_at":"2021-07-15T08:01:58.000Z","size":28694,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-14T13:01:34.743Z","etag":null,"topics":["cpp","crossplatform","easy-to-use","fileio","http-parser","multithreading","socket","threadpool"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InteractivePlus.png","metadata":{"files":{"readme":"README-ch.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-29T18:56:32.000Z","updated_at":"2023-01-28T07:47:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae830d4d-3d58-498f-bbe8-eb3eaebd005b","html_url":"https://github.com/InteractivePlus/EasyCrossPlatform_src","commit_stats":null,"previous_names":["easycrossplatformlib/easycrossplatform_src"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractivePlus%2FEasyCrossPlatform_src","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractivePlus%2FEasyCrossPlatform_src/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractivePlus%2FEasyCrossPlatform_src/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractivePlus%2FEasyCrossPlatform_src/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InteractivePlus","download_url":"https://codeload.github.com/InteractivePlus/EasyCrossPlatform_src/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709921,"owners_count":20821296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","crossplatform","easy-to-use","fileio","http-parser","multithreading","socket","threadpool"],"created_at":"2024-08-01T07:01:04.590Z","updated_at":"2025-04-01T20:30:27.027Z","avatar_url":"https://github.com/InteractivePlus.png","language":"C++","readme":"# EasyCrossPlatform\n用简单的代码, 写出毫无妥协性能的程序  \n**此项目正在重构阶段, 请前往Release页面查看最新的稳定版本**\n[形随意动](https://github.com/BlueAirTechGroup/)旗下项目, 项目起始日期为2017年10月15日  \n版本: 1.2 Dev Beta  \nLanguage: [English](README.md)  \n**稳定版本可在Release页面中找到**  \n## 介绍\n为了PHP与Python用户创建的快速开发且跨平台的C++框架  \n支持系统: LINUX / WIN / MacOS  \n支持CPU架构: x86(i386) / x64(x86_64) / ARMv5 / ARMv6 / ARMv7 / ARMv8  \n**我们没有对大端序(Big-Endian)的CPU机器进行测试, 请注意, 如果您在一台大端序(Big-Endian)和一台小端序(Small-Endian)的机器上进行Socket连接, 他们交换的信息可能不会按照预测的那样进行**  \n*所幸现在大多数的CPU都是小端序的*  \n[形随意动](https://www.xsyds.cn/)作品  \n贡献列表: [年迈的老秋风](https://github.com/ToiletCommander)  \n\n---\n\n- 包含库: \n\t- 多线程池\n\t- 多线程\n\t- 文件读写\n\t- 文件信息读取\n\t- TLS \u0026 ~~DTLS~~ \u0026 TCP \u0026 UDP Sockets 套接字\n\t- MySQL / MariaDB(使用MariaDB C Connector)\n\t- 加密库(AES,RSA,Base64,Md5,SHA1/SHA256)\n\t- 压缩库(Deflate-Gzip, Deflate Zlib, Brotli)\n\t- HTTP(s)请求\n\t- JSON\n\t- HTTP1.X解析器\n\t- 国际编码转换\n\t- 正则表达式匹配/替换/查找\n\t- HTTP服务器(支持Websocket服务器)\n- 环境依赖: \n\t- POSIX/Windows系统\n\t- C++ 11  \n\n---\n\n## 毫不妥协的性能\nSocket库以Libuv为底层, 开发了跨平台的Socket库.  \n根据测试, Release版本在1万并发的情况下延时仅240ms.  \n## 依赖\nEasyCrossPlatform的发展是由下面几个库驱动的:  \n[LibUV](https://github.com/libuv/libuv) - CrossPlatform套接字完全基于此库编写, 我给他写了一层包装库.  \n[Crypto++](https://github.com/weidai11/cryptopp) - 加密库, 未来的EasyCrossPlatform加密库会基于此加密库.  \n[Crypto++ Examples](https://github.com/sechaser/CryptoPP) - Crypto++ AES例子, EasyCrossPlatform AES 加密库基于此实例搭建  \n[MariaDB](https://mariadb.com/downloads/mariadb-tx/connector) - MySQL / MariaDB 连接器.  \n[JSONCPP](https://github.com/henshao/jsoncpp) - 一个魔改版的JSONCPP, 比原版的快速很多, EasyCrossPlatform的JSON解析库完全基于此库编写  \n[mbedtls](https://github.com/ARMmbed/mbedtls) - 一个SSL/TLS和其他加密方法的库, 用于编写TLS加密的套接字  \n[whereami](https://github.com/gpakosz/whereami) - 两个文件的小型库, 告诉程序它自己在哪  \n[Brotli](https://github.com/google/brotli) - 谷歌Brotli压缩算法库  \n[iconv](https://www.gnu.org/software/libiconv/) - Iconv国际编码库  \n[iconv-win](https://github.com/ThePhD/libiconv) - Iconv 和 VC++ 一起编译的工程. 本人在此基础上增加了一部分文件让他支持跨平台编译  \n[WebSocket](https://github.com/katzarsky/WebSocket) - C++ WebSocket(RFC6455)实现. 本人在此基础上修改了一部分文件以修复部分Bug和解决消息粘包问题  \n*以上项目的协议完全保持原样, 请务必参照他们的项目工程页面*  \n## 为什么没有用户界面库?\n我们曾考虑过使用\"MyGUI\"库, 但是它包含了太多的依赖且在每个桌面环境中, OPENGL的配置都可以是不一样的. 如果您需要用户界面, 我们推荐使用MyGUI和它的OPENGL2.0实现.  \n## 开发理念\n*\"使用更少的依赖, 使用更少的代码\"*  \n大家都爱C++, 但是并没有任何好用的库, 来帮助初学者快速上手C++的多线程, 网络, 用户交互开发, 同时享受C++带来的无与伦比的速度与效率优势  \n受到 [Reasoning](http://reasoning.biz/) 库的影响, 但是这个库自2008年便不再开发  \n用EasyCrossPlatform开发, 可以有效的减少代码行数, 意味着更少Bug和溢出漏洞的可能性. EasyCrossPlatform在实现层趋向于将底层代码封装的更简易, 但是仍旧保留不妥协的性能  \n## 特别鸣谢\n[Ruki](https://github.com/waruqi) - Xmake作者, 帮助我完成了许多编译文件的构建.  \n## 编译\n此项目仍在早期开发阶段, 且并没有考虑开始发行, Beta版都不! 不过如果您等不及了, 可以编译此库以使用它.  \n1. 我们使用[XMake](http://xmake.io/)来简化我们的编译过程, 您需要首先安装Xmake.\n2. 在/extlibs/MariaDB文件夹中选择您系统对应的正确版本, 并将系统版本文件夹内的文件拷贝到/extlibs目录下\n\t- e.g. \n\t- 复制 extlibs/mariadb/Win_x86/mariadbclient.lib 到 extlibs/mariadbclient.lib\n\t- 复制 extlibs/mariadb/Win_x86/mariadb.lib 到 extlibs/mariadb.lib\n\t- 复制 extlibs/mariadb/Win_x86/mariadb.dll 到 extlibs/mariadb.dll\n3. 如果您是 \n\t1) 以下其中一种 Linux 系统的用户, 你需要从下方命令行代码中运行一个(运行您系统的对应命令), 原生Linux用户无需执行下列代码中的任何一个  \n\n```\nxmake f -p solaris\nxmake f -p zos\nxmake f -p freebsd\nxmake f -p dragonflybsd\nxmake f -p openbsd\nxmake f -p netbsd\n```\n\n4. 目录下运行xmake即可生成静态/动态链接库.  \n(注意Windows和Linux的库互不通用, 不同版本的Linux静态库也不通用).  \n## 贡献\n欢迎提交Pull Request.   \n您也可以通过测试来提交   \n注意, 在您提交Pull Request请求前, 请您对您的API进行测试. 谢谢!  ","funding_links":[],"categories":["Projects"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInteractivePlus%2FEasyCrossPlatform_src","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FInteractivePlus%2FEasyCrossPlatform_src","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInteractivePlus%2FEasyCrossPlatform_src/lists"}