plugify
1.0.0.0
|
<details open="open">
</details>
Unlock a new era in plugin development with Plugify, a revolutionary library designed to streamline and enhance the way plugins are created and utilized. Plugify goes beyond traditional plugin management by introducing innovative language modules, redefining the boundaries of cross-language communication.
The plan was to build a new plugin system for CS in C#, but some of the decisions that were made in the early version led to a decision to ‘remove the training wheels’, unshackle the system from any game or embeddable language and create a system which allows the developers of plugins to build them in whatever language they like. For as long as that language module is installed, the system is able to support it. So by no longer trying to force it to be deemed a ‘good’ solution to be embedded in a variety of games, Plugify now goes far beyond the logical limitations a C#-specific solution has. What this means is that Plugify not only has the potential to have a larger community of developers, but is now flexible from the beginning to last a long time. Longevity was always a selling point, since if it was to work, it always had to be a ‘forever’ feature. It’s not just games development that stands to benefit. The flexibility of Plugify should mean it has uses in many projects, not just in games.
Actions build created for windows, linux and apple.
You can also use the plugify::plugify
interface target in CMake.
To use this library from a CMake project, you can locate it directly with find_package()
and use the namespaced imported target from the generated package configuration:
To embed the library directly into an existing CMake project, place the entire source tree in a subdirectory and call add_subdirectory()
in your CMakeLists.txt
file:
Since CMake v3.11, FetchContent can be used to automatically download a release as a dependency at configure time.
Example:
Note: It is recommended to use the URL approach described above which is supported as of version 1.0.0. See wiki for more information.
To allow your project to support either an externally supplied or an embedded Plugify library, you can use a pattern akin to the following:
thirdparty/plugify
is then a complete copy of this source tree.
This code creates an instance of the object implementing the plugify::IPlugify interface. It sets up logging, initializes the instance, and then interacts with a package manager and a plugin manager if they are available. Error handling is included for initialization failures.
The documentation is based on doxygen. To build it:
The API reference is created in HTML format in the build/docs/html
directory. To navigate it with your favorite browser:
The same version is also available online for the latest release, that is the last stable tag.
There is also a wiki page dedicated to the project where users can find all related documentation pages. Additionally, we offer an online documentation generator that allows you to easily create documentation for your plugin's manifest file.
To build the basic testing app:
Install dependencies:
a. Windows
Setting up CMake tools with Visual Studio Installer
b. Linux:
c. Mac:
Install CURL, otherwise build it in embedding mode with cmake options:
a. Linux:
b. Mac:
The dependencies can be used as external
(find_package)
and embedding(add_subdirectory)
, you can use plugify options to choose what you suits your need.
7. Create build folder:
Here is a list of all already implemented language modules:
While Plugify is a relatively new project, it is making waves in the realm of server-side modding, particularly in the Counter-Strike 2 community. As of now, Plugify is primarily utilized in the ance of a new project known as MM2-Plugify, which is also being developed by our team.
If you know of other resources out there that are about Plugify
, feel free to open an issue or a PR and we will be glad to add them here.
See the open issues for a list of proposed features (and known issues).
Reach out to the maintainer at one of the following places:
If you want to say thank you or/and support active development of plugify:
Together, we can make plugify better!
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
The original setup of this repository is by untrustedmodders.
For a full list of all authors and contributors, see the contributors page.
Plugify follows good practices of security, but 100% security cannot be assured. Library is provided **"as is"** without any warranty. Use at your own risk.
For more information and to report security issues, please refer to our security documentation.
This project is licensed under the MIT license.
See [LICENSE](LICENSE) for more information.
[?] If your work was funded by any organization or institution, acknowledge their support here. In addition, if your work relies on other software libraries, or was inspired by looking at other work, it is appropriate to acknowledge this intellectual debt too.