introduce

Mini-star is a microkernel front-end library for implementation projects, designed to help you build (or transform) a production-usable microkernel (plug-in) architecture system more easily and painlessly.

What is a microkernel

A group of software programs that minimize the number of programs that provide and implement the mechanisms and functions required by an operating system. These basic mechanisms include low-level address space management, thread management, and interprocess communication.

Design concept

Distinguish the implementation of the system from the basic operating rules of the system. It is implemented by modularizing core functions into several independent processes, each running separately, called services. All server processes run in different address Spaces.

Keeping services separate reduces coupling between systems, makes it easier to implement and debug, and improves portability. It can avoid the failure of a single component and cause the whole system crash. The kernel only needs to restart this component, so that the functions of other servers will not be affected, and the system stability will be increased. At the same time, some service processes can be replaced or added as required to make the function more flexible.

In terms of code volume, core systems generally use less code than integrated systems because of their simplified functionality. Less code means fewer bugs lurking.

Ministar core design philosophy

  • simple

Since both the Base project and the Plug-in project can be stack-neutral, the Ministar is just a library for the user similar to the jQuery plug-in system. You need to load the plug-ins and shared dependencies through the Ministar/Runtime. The ministar/ Bundler plug-in project is then used to build the plug-in project.

  • Decoupling/technology stack independent

Micro kernel core target and micro front end, is to apply stones can disassemble into several autonomous application of loose coupling, and ministar are all designed with this principle, in addition to the need to share the public dependence and base project provides the ability of plug-in project has its own context, rely on management, and mutual communication mechanism, This ensures that plug-ins can be developed independently. It also ensures the ability to share types with other dependencies.

features

  • Out of the box, you can also customize the transformation.
  • Technology stack independent, any technology stack can be usedAccess/Access, whether the React/Vue/presents/Svelte/JQuery or other framework.
  • Shared dependencies, the same dependencies only need to be loaded once, reducing unnecessary volume and packaging time
  • Make dependency calls between plug-ins as if they were native components
  • Based on theRollupPack it up, now!
  • Built for the modern front end. In the past, we exposed the window method. Now all our code needs to be compiled into modules and exposed through modules
  • Topology relies on sorting to prevent timing problems.

The document

  • The official documentation
  • Github