• Stars
    star
    2,498
  • Rank 18,388 (Top 0.4 %)
  • Language
    TypeScript
  • License
    Other
  • Created almost 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A powerful micro front-end framework 🚚
garfish

NPM version build status

Garfish is a micro front-end framework, mainly used to solve the problems of cross-team collaboration, diversification of technology system, and increasing complexity of applications brought by modern web applications in the context of front-end ecological boom and increasing complexity of web applications, and Garfish has been polished and tested by a large number of online applications, with strong functional stability and reliability.

Garfish Goals

To compose multiple independently delivered front-end applications into a whole, and to decompose front-end applications into some smaller and simpler applications that can be "independently developed", "independently tested" and "independently deployed", while still appearing to users as cohesive individual products.

Installation

# npm
npm install garfish

# yarn
yarn add garfish

Documentation

The doc site (Garfish) is only available in Chinese for now, we are planning to add English versions soon.

Functionality

🌈 Rich and efficient product features

  • Garfish micro front-end sub-application supports any kind of framework and technology system access
  • Garfish micro front-end sub-application supports "independent development", "independent testing" and "independent deployment
  • Powerful pre-loading capability, automatically record user application loading habits to increase loading weight, and greatly reduce application switching time
  • Support for dependency sharing, which greatly reduces the overall package size and the repeated loading of dependencies.
  • Support data collection, effectively perceive the state of the application during operation
  • Support for multiple instance capability to run multiple sub-applications in the page at the same time enhances the business splitting efforts
  • Provides efficient and usable debugging tools to assist users in the micro front-end model brings different development experience problems from the traditional R&D model

đŸ“Ļ Highly scalable core modules

  • Supports HTML entry and JS entry through the Loader core module, making it easy to access micro front-end applications
  • Router module provides route-driven, master-child route isolation, users only need to configure the routing table application can complete the independent rendering and destruction, the user does not need to care about the internal logic
  • Sandbox module provides runtime isolation for the application's Runtime, which can effectively isolate the side effects of JS and Style on the application
  • Store provides a simple mechanism for exchanging communication data

đŸŽ¯ Highly scalable plugin mechanism

  • Provide business plugins to meet various customization needs of business parties

Contributing

Credit

  • Qiankun is a very good micro front-end framework, Garfish sandbox design learned a lot of good ideas
  • single-spa for community raised a hot wave of micro front-end solutions, learned a lot of amazing Garfish routing system design. And for the Garfish bridge design, we have refered the implementation of the bridge part in single-spa and we think it is a good design, so we fork the code of the bridge implementation part and make some adjustments for the lifecycles in Garfish.
  • Garfish's css-scope plugin is inspired by the implementation of reworkcss, and some some of the implementation code is forked from reworkcss for different scenarios.
  • The design of garfish's es-module plugin was inspired by the @babel/traverse and es-module-shims libraries, and some of the implementation code is forked from @babel/traverse

More Repositories

1

rspack

The fast Rust-based web bundler with webpack-compatible API đŸĻ€ī¸
Rust
9,468
star
2

modern.js

Modern.js is a web engineering system, including a web framework and a npm package solution.
TypeScript
4,421
star
3

oxc

⚓ A suite of high-performance tools for JavaScript and TypeScript written in Rust.
Rust
1,902
star
4

rspress

đŸĻ€đŸ’¨ A fast Rspack-based static site generator.
TypeScript
1,366
star
5

rsbuild

The Rspack-based build tool. It's fast, out-of-the-box and extensible.
TypeScript
1,241
star
6

rsdoctor

A one-stop build analyzer for Rspack and Webpack.
TypeScript
384
star
7

rslib

The Rsbuild powered package build tool.
TypeScript
340
star
8

midscene

An AI-powered automation SDK can control the page, perform assertions, and extract data in JSON format using natural language.
HTML
309
star
9

rspack-sources

Rusty webpack-sources port.
Rust
119
star
10

awesome-rspack

A curated list of awesome things related to Rspack, Rsbuild and Rspress
107
star
11

webpack-inspector

Devtool for webpack.
TypeScript
96
star
12

mdx-rs

Rust MDX compilation binding for Rspress
Rust
83
star
13

reduck

A Redux-based state management library
TypeScript
75
star
14

rspack-website

Website of Rspack
TypeScript
60
star
15

swc-plugins

SWC plugins and binding
Rust
55
star
16

blogs

Web Infra team working group
36
star
17

modern-js-examples

Examples for Modern.js web engineering system
30
star
18

unport

A Universal Port with strict type inference capability for cross-JSContext communication.
TypeScript
29
star
19

nodejs_resolver

Rust
27
star
20

codesmith

Micro generator for development life-cycle.
TypeScript
23
star
21

electron-sprout

A front-end friendly desktop framework based on Electron.
TypeScript
20
star
22

rspack-dev-guide

A guide to how Rspack works and how to contribute to it.
17
star
23

deep-dive-into-tla

Blog Post - Deep Dive into Top-level await
16
star
24

rspack-resolver

Rust Port of enhanced-resolve
Rust
14
star
25

napi-template

Template for generating rust-based native projects
JavaScript
13
star
26

bundler-benchmark

JavaScript
10
star
27

web-infra-QoS

Web Infra QoS
TypeScript
10
star
28

rspack-ecosystem-ci

Rspack Ecosystem CI
TypeScript
9
star
29

rspack-repro

A GitHub template for create reproduction with Rspack fastly.
JavaScript
9
star
30

rspack-ecosystem-benchmark

JavaScript
8
star
31

rspack-migration-showcase

migration showcase for rspack
TypeScript
8
star
32

midscene-example

Examples for midscene
TypeScript
8
star
33

nde

A tool to speed up the deployment of node.js project and reduce the size of deployment products.
TypeScript
8
star
34

libuild

The home for various projects about libuild
TypeScript
7
star
35

webinfra.org

HTML
7
star
36

.github

The profile of Web Infra organization.
6
star
37

actions

TypeScript
6
star
38

rfcs

RFC for changes to web-infra projects
3
star
39

with-rspack-demo

Demo application that bundle with rspack
CSS
2
star
40

modern-js-dev.github.io

modernjs.dev
HTML
2
star
41

rspack-demo

A demo for rspack bundler
JavaScript
2
star
42

rspack-compat

JavaScript
2
star
43

module-tools-examples

module-tools examples
TypeScript
1
star
44

clabot-config

1
star
45

rspack-dev-server

Dev server of rspack
JavaScript
1
star
46

media

media resources for Rspack
1
star