#plugin #plugin-system #framework #ffi #rust

已下架 vplugin

一个允许项目创建和使用插件系统的Rust框架

6 个版本

0.3.0 2023年4月9日
0.2.1 2023年2月23日
0.2.0 2023年1月21日
0.1.0 2022年12月11日

#47 in #plugin-system

Download history 51/week @ 2024-04-17 13/week @ 2024-04-24 22/week @ 2024-07-03

每月下载量 55
用于 vplugin-package

Apache-2.0

81KB
546

VPlugin 🔌: Rust的插件框架。


网站 | 问题 | 文档

VPlugin是一个Rust框架,用于在应用程序和库中开发和使用插件,
包括但不限于游戏、文本编辑器、命令行和图形应用程序。


但为什么呢?

自从我开始编程以来,我就一直在寻找一个合适的解决方案来创建插件API,而无需复制他人的代码。最终,我决定编写自己的库,这最终变成了一套功能齐全的工具,使我能够轻松地从零开始编写插件系统,而无需重复同样的工作1000次。

一般来说,VPlugin旨在成为您应用程序的基础模块,您将在其之上构建一切。VPlugin不仅会为您创建插件系统;它还会做那些底层的工作,并为您提供高级抽象。

选择版本

使用 master 树进行整个开发,所以除非您愿意承担项目突然无法编译的风险,否则请避免使用它。尽管尚未发布任何“稳定版本”(VPlugin通常被视为处于alpha状态),但您建议使用最新的crates.io 发布版,该版本已验证可以正常工作。

通常,升级版本可能会导致API破坏。这是自然的;请查看变更日志并相应地调整您的代码库。

特性

  • 🚀 飞快的速度(多亏了Rust!)
  • 🔥 易于使用,没有在灵活性上妥协。
  • 💻 跨平台和可移植,将在大多数主要平台上运行。
  • ❤️‍🔥 现代:忘记您代码中的糟糕解决方案和奇怪的错误。

MSRV

VPlugin官方只支持Rust语言的最新稳定版本。您可能能够将其编译到几个较旧版本上,但如果您的计算机崩溃或控制台上有大量错误消息,请不要感到困惑。

仓库内容

此仓库包含实现VPlugin的库,以及插件格式规范和其他一些相关内容。有关其他相关项目,请参阅GitHub 组织

示例

示例应用程序可在此处找到。有关更多信息,请参阅README文件。

支持的语言

通常情况下,大多数编译型语言都将得到支持,只要它们能够构建为共享对象文件(共享库)。这意味着尽管VPlugin目前只支持Rust语言,但完全有可能用C、C++或甚至是Vala编写一个可以被VPlugin使用的插件。更多详情请参见插件规范。这里的关键要求是提供一种将您的类型导出到这些语言的方法,这需要提供安全保证和大量的专业知识。

依赖项

~6.5MB
~113K SLoC