Syllable取得了首个REBOL Binding,带cURL库

最新ubuntu/linux/开源新闻或者其它IT相关资讯
回复
头像
vikyzhang
帖子: 677
注册时间: 2010-10-18 14:39
联系:

Syllable取得了首个REBOL Binding,带cURL库

#1

帖子 vikyzhang » 2011-02-19 11:35

Syllable取得了首个REBOL Binding,带cURL库
发表于 2011-2-19 16:03 UTC

Syllable现已取得首个独立的REBOL binding(Syllable Desktop截屏)。该项目用cURL库创建了一个binding;它包含了Syllable作为其网络库。Syllable,Linux 和 Windows下的文档和下载在此可用。该binding将会在即将来临的REBOL & Boron大会上被演示。

当前版本的Syllable REBOL 3与系统在POSIX水平上进行通信。除此之外,你可以用系统和用户库编写你自己的bindings。他们将作为REBOL 3扩展。令人惊讶地,正如核心REBOL 3解释器库,Syllable Desktop可以运行免修改的cURL binding的Linux二进制代码,于是同一个库可以被Syllable Desktop 和 Syllable Server共享。正是由于介于REBOL 3和其扩展之间的界面被设计得拥有最大可移植性以避免依赖噩梦,才使得这成为了可能。

该binding包含动态(共享)库和一个唯一的二进制文件。在Syllable上(Desktop 均可 Server),安装过程之需将其安放至指定位置即可,就像本地Syllable驱动和插件一样。在其他系统当中,安装过程可能会复杂一点。

REBOL拥有内置的网络协议,但新的REBOL 3尚没有REBOL 2上的许多协议。cURL binding填补了这一差距,同时提供了如SSL 和 proxy支持等新特性,甚至一些REBOL 2从来就没有过的协议。具体的协议支持依赖于你所使用的cURL版本。以下是一个简单的编程实例,它从SSL加密的网站读取一页内容:

import %cURL-binding.so
session: curl/new-session
curl/read session data: copy #{}
curl/verify-peer session off
curl/do session https://github.com/carls/R3A110
curl/end-session session
result: to-string data

cURL非常强大与灵活,REBOL binding则给你以简单的方式获取这些优势。比如,如果你需要做特殊的web编程以使网站认为你的程序是一个人类用户,客户头可以被设置,继而连同一个request一起被送至服务器:

session: curl/new-session
curl/headers session [
"Referer: ..."
"User-Agent: ..."
"Cookie: name1=content1; name2=content2;"
]

高级REBOL通信双向可行。一个由REBOL写成的提供进程状态的回叫信号(callback)可以被加入,但这是被cURL周期性地调用。以下是一个包含错误检查的实例:

progress: func [
download-goal [decimal!] download-now [decimal!]
upload-goal [decimal!] upload-now [decimal!]
][
print [
"Read" to-integer download-now
"of" to-integer download-goal "bytes"

]
0 ; Return non-zero to abort transfer
]
session: curl/new-session
unless all [
curl/progress session self 'progress
curl/read session data: copy #{}
curl/do session http://rebol.com
][
do make error! second curl/session-error session
]
curl/end-session session
result: to-string data


英文原文:http://www.osnews.com/story/24437/Syl ... t_REBOL_Binding_With_cURL
转载请注明:Linux人社区 英文资讯翻译专版 编译
http://www.linux-ren.org/modules/newbb/ ... post323874
Linux人社区开源新闻资讯翻译专版小编。翻译来自互联网上最新的英文开源资讯,提供给大家最迅即、最忠实于原文的开源业界动态、软件更新、有用技能等等。不至之处欢迎指正![email protected]
回复