avhttp的第一期目标总算完成了, 发个贴感叹一下.

Jackarain 发布于 2013/05/12 00:04
阅读 2K+
收藏 14

很多很多时候, 我们都需要用到http协议, 而在c/c++中, 好用的开源http开发库大概没几个, 比较全面的就属curl了, 我相信这个库很多人都使用过, 不过它的api接口在我看来并不友好, 繁琐和难以理解的选项非常之多, 并且关键一点, 不支持异步!


所以, 要使用curl只能开线程! 不用我说, 线程显然是一种昂贵的资源, 过多的线程会导致cpu频繁的切换线程上下文而不是干实事, 这个代价是很大的. 这也正是异步的好处之一, 可以避免过多的线程.

异步在当前很多应用的需求当中, 异步几乎必备的特性了, 好吧, 终于有一个
叫node.js的家伙出现了, 并且可以很好的支持异步, 但毕竟在c++开发环境下, 若为了http这样的功能而引入它的话, 似乎有点小题大作了, 而且node.js是通过脚本来执行的, 这必将使得效率下降.

这真是太糟糕了!

我是一个有代码洁癖的人, 显然最看不得到处飞线程这种事, 由其是仅仅为了下载一点点数据, 就飞一个线
程, 我是最接受不了的. 在许多群友的鼓励下, 我终于开始了avhttp项目的开发, 并设定了最初的一个目标,那就是:

一. 开源!!! 并使用boost授权( http://www.boost.org/LICENSE_1_0.txt )作为开源协议.
二. 支持http/1.0协议.
三. 支持http/1.1协议, 其中包括chunked支持, gzi压缩等支持.
四. 支持代理, 包括socks4/socks5/http代理(天朝必备).
五. 异步支持, 基于asio, 可以获得良好的异步支持.
六. 并发下载, 断点续传, 这一块是在基于上面5点的基础上的.
七. 简单易用的接口.

经过持续的开发一直到今天, 总算把这个目标实现了.

详细见: http://www.oschina.net/p/avhttp 或直接 https://github.com/avplayer/avhttp

当前编译测试状态 
Build Status

感叹: 开源真是累啊! 没啥好处活受罪! 所以, 抛砖还请轻点.




 

加载中
0
excepiton
excepiton
为啥叫av,我看着怪怪的
0
七念
七念
+1  不错啊, 并发下载, 断点续传 ,岂不是下黄片很快了
0
子矜
子矜
不错不错 看了下都是hpp  可惜我有强迫症
Jackarain
Jackarain
header only, 这意味着不需要编译, 不需要lib, 只要include一下就可以使用了.
0
羊八井
羊八井
估计别个是搞视频的,AV -> Audio/Video。他们这块都这么叫的。
Jackarain
Jackarain
社区名前辍, 没别的意思. 呵呵
0
依然傻笑
依然傻笑
赞一个!!!
0
O油菜
O油菜
是传说中的avplayer社区?哈哈,久仰。
O油菜
O油菜
回复 @Jack.arain : Jack, I'm Omega Coleman。。。
Jackarain
Jackarain
Yeah, 里面都是货真价实的开源项目啊, 也许会有你感兴趣的.
0
明月惊鹊
明月惊鹊
我本来也是冲着av进来的,其实我不明真相
0
jeffsui
jeffsui
支持楼主,支持开源事业!
0
Elinx
Elinx
关注,看看楼主的源码去~~~
返回顶部
顶部