Open
Description
currently we have the following features coupled in core/rpc/storage:
- core: full text indexing, single page extract
- rpc: websocket/webrtc connector
- storage: image minify, stream storage, database/s3 support
these features need to introduce additional dependencies, making testing and compiling time longer
at present, cargo features are used to switch these functions, which requires us to include a lot of conditional judgments in the code, and making the code difficult to maintain
therefore, we need to design a plugin mechanism to make these features pluggable, which makes the code easier to maintain and facilitates external developers easily to develop new functions