Javascript

C++跨平台轻量组件库大全-json-base64-url-安全队列等

本文主要是介绍C++跨平台轻量组件库大全-json-base64-url-安全队列等,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

库目的

1、C++基础库,跨平台。目前在windows开发,还没cmake,欢迎大神来cmake或makefile。

2、集合挑选已有的开源库。

3、封装常用的功能,并提供友好的接口。

4、代码重用,避免每次要用都要花时间精力找代码封装。

库代码获取

已开源,开源许可MIT,可免费商用。

github仓库:https://github.com/zhuguohua/zgh

gitee仓库(从github导入):https://gitee.com/zhu_myroom/zgh

----欢迎大家参与使用,提需求、提交代码增加功能,或修复bug。

----可以提交到github仓库, 而gitee是直接从github仓库导入同步的。

----当然了,贡献代码需要注意好的代码规范~~~

计划支持的功能

  待支持的功能、希望大家一起参与完善~~

接口使用例子

见代码:main.cpp:

#include <iostream>
#include "src/zgh.h"

int main()
{
	// 库的所有的功能都在命名空间:api202104
	unsigned long ulcrc16 = api202104::crc16("123456", 6);
	unsigned long ulcrc35 = api202104::crc32("123456", 6);

	// zgh其实就是api202104,通过宏定义重命名。
	std::string md5     = zgh::md5("123456", 6);
	std::string sha1     = zgh::sha1("123456", 6);
	std::string sha256 = zgh::sha256("123456", 6);

	std::string b64enc = zgh::base64::encodeStr("1234568");
	std::string b64dec = zgh::base64::decodeStr(b64enc);

	std::string urlstr = "https://John:Dow@github.com:80/corporateshark/LUrlParser?a=你好&b=2";
	std::string urlenc = zgh::urlEncode(urlstr);
	std::string urldec = zgh::urlDecode(urlenc);

	zgh::url     url    = zgh::url(urlstr);
	std::string host = url.host();
	std::string port = url.port();
	std::string uri    = url.uri();
	
	return 0;
}

----有什么感想,是不是看完,感觉用起来很简单~~

----更多例子后续会更新出来,也可以自行看源码的,毕竟我也没太多时间,大家可以参与完善~~

开发环境

vs2017。当然只要支持c++11的编译器都可以,比如vs2012. 嗯?都什么年代了,还vs2012?

如果非vs2017等打开工程,需要设置一下工程属性,选能选的就行了,见下图:

注:微软的产品真的好用,但大多收费,而我又穷,没钱给微软了,看上图右下角的windows激活,将就着用了~~

为什么要设计当前库

你可能有疑问,已有boost、qt、poco等跨平台库,为什么还要开发当前库?

一、boost、qt、poco等存在很明显的缺点

1、庞大变得臃肿。

2、编译复杂又麻烦,阻挡了不少人。

3、编译出来的库体积大。

4、接口不友好,还需要封装。

5、而tinyxml2、jsoncpp等开源库太零散,

      每次换地方用都要花时间精力搜集代码。

6、qt商用版并非免费。

二、当前库有自己的优势

1、同样是跨平台。

2、旨在轻量,部署简单,拿来就用。

3、可以嵌入到工程直接编译。(不过建议动态库或者静态库方式使用)。

4、接口定义简单,用得舒服。

5、免费商用许可。需用的第三方开源库也是免费商用许可。

boost使用举例

使用boost、qt、poco等库,首先要突破重重障碍,完成这些库的编译,才能使用。具体编译方法不再本文讨论范围。

举例boost的使用

       --后续有时间加两个例子对比。

 

鸣谢:

当前库用了较多第三方免费的开源组件,见git仓库的readme.md说明。

每个第三方开源库,都保留了对应的readme.md描述了。

这里感谢各开源库作者的贡献。

 

欢迎大家参与使用,提需求、提交代码增加功能,或修复bug。

交流企鹅:530894516

 

 

 

 

这篇关于C++跨平台轻量组件库大全-json-base64-url-安全队列等的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!