From 11a85562509b6249a25c7626c7933b3985606890 Mon Sep 17 00:00:00 2001 From: ari melody Date: Mon, 5 May 2025 18:22:23 +0100 Subject: [PATCH] add README --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c98e81 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# C plugins + +learning how to write a dynamic plugin loader in C! + +## how does it work? + +the core application will scan a nearby `plugins` directory for plugins. +the core expects this directory structure: + +- `pluginhost` +- `plugins` + - `plugin1` + - `plugin1.so` + - `plugin2` + - `plugin2.so` + +each plugin must minimally contain two functions: +- `int ari_plugin_load(void)` +- `int ari_plugin_unload(void)` + +once loading all plugins, the core will call these functions within each +detected plugin, and exit. + +## how to use + +> [!WARNING] +> this software only supports linux at the moment. no plans to support other +> platforms at this time! + +- `make` to build the core application +- `make all_plugins` to build all plugins +- `make all` to build both! +- `make clean` to tidy up the environment +- once built, run `./pluginhost` to test the application.