besich opened a new issue #6612:
URL: https://github.com/apache/apisix/issues/6612


   ### Description
   
   # PROPOSAL
   Refactor the plugin code organization, make the plugin independent from 
APISIX, and maintain the plugin independently.
   
   # BACKGROUND
   The current APISIX compilation method is a full installation, which is very 
unfriendly to developers and users who install through source code.
   Because many plugins depend on third-party libraries, the complicated 
environment is complex, but most of the time, these plugins are not needed.
   
   # Technical
   Current: plugins are mixed under **/apisix/plugins/*.lua**
   Suggestion: migrate to **/plugins/*plugin*/**, *plugin* represents different 
plugins. One plugin is a One directory.
   
   Under each plugin directory, there is an independent 
**/plugins/*plugin*/package.json** file, which has description information, 
which stores related to the independent plugin data.
   
   ## for example:
   * startup code. eg. in **“/plugins/example-plugin/package.json”**, it has 
**“main”:”index.lua”**. 
   * compile the plugin dependency library.
   * compile the plugin dependency environment variable.
   * unit tests about the plugin 
   * multi-language
   
   
   # BENEFIT
   * The plugin can be compiled optionally. When compiling the APISIX, obtain 
which plugin enabled from the configuration file, and then compile after 
dynamically generating rockspec.
   * Development-friendly. During unit testing, you can only test the enabled 
plugin.
   * Maintenance-friendly. Because the core of APISIX should be relatively 
stable, the addition of the plugin will be dynamic and frequent.
   * Make technical preparations for a marketplace.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to