GObject Introspection(GI)介绍

GObject Introspection(GI)是一个让基于GObject的本地库轻松转换为脚本语言或高级语言绑定的GNOME子项目。它通过一套描述语言定义API和内存所有权,方便在运行时解析生成的二进制形式,为各种脚本语言自动生成绑定,简化调用native library的过程。虽然类似技术已存在,如Mozilla的XPCOM,但GI在GNOME项目中的广泛采用意味着大量库可用于多种语言,极大地推动了桌面开发环境的进步。
摘要由CSDN通过智能技术生成

GObject Introspection/GI 是 GNOME 的子計劃,是一個讓基於 GObject 的native library 能輕易 porting 到 script language 或高階語言。也就是提供binding。GI 透過定義一套描述語言,描述 native library 的 API 和 memory的 owner-ship。並提供一套工具和 library,可以 parse 這些描述,將之轉成binary 形式,方便 runtime 時使用。而 script language 或高階語言,可以透過這些 API 資訊,知道該 library 提供哪些 function,而其參數為何。因此,可以自動產生對應的 binding,讓 programmer 呼叫。

嚴格說來,GObject Introspection 並沒有什麼新意,它將 API 的資訊編釋成typelib,也就是 binary 格式,這其實和 Mozilla project 的 XPCOM 一樣。而GI 的 API 描述語言,會先轉成XML 格式,其實和 XPCOM、SOAP 或其它技術使用的 IDL 也差不多。比較特別的是,GI 把 owner-ship 帶入了描述語言。這一點,我在做 MadButterfly 的 nodejs plugin 時,用 M4 做了一套描述語言時,也曾試著要加入相同的東西。很高興, GI 已經有將這樣的功能設計進去。透過描述語言的描述, script language 能學會如何使用被描述的 lib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值