一些开源语言没有所有数据库的所有驱动程序,如memcache等。所以我想为他们写一个驱动程序。但我不知道该怎么做。我可以从哪里开始?
几种方法可以做到这一点。
使用该语言的外部函数接口包装现有驱动程序。 这通常是最快的途径,但生成的 API 可能很笨拙或不自然,并且很难利用语言功能。
读取 memcached 协议规范并编写驱动程序。 这适用于简单的协议,并允许您编写使用该语言的所有功能的驱动程序(例如异步 IO)。 但是,如果协议不简单,这可能会做很多工作。
将现有驱动程序移植到目标语言。 如果存在类似语言的现有驱动程序(例如,Java 和 C# 相似),则此方法非常有效。
我按照这些技术的普遍程度粗略地对这些技术进行了排名。 有时,随着语言的成熟和社区的发展,FFI 库 会被原生库 取代。