Git Product home page Git Product logo

web-infra-dev / rspack Goto Github PK

View Code? Open in Web Editor NEW
7.4K 46.0 456.0 44.96 MB

A fast Rust-based web bundler 🦀️

Home Page: https://rspack.dev

License: MIT License

Rust 46.37% JavaScript 20.05% HTML 0.25% TypeScript 17.79% CSS 1.40% SCSS 0.12% Less 0.37% EJS 0.01% WebAssembly 0.12% Dockerfile 0.01% CoffeeScript 0.02% Pug 0.01% Vue 0.02% MDX 13.48%
bundler javascript compiler web rust build-tool esm jsx loaders typescript

rspack's Introduction

Rspack Banner

A fast Rust-based web bundler

discord channel npm version downloads license

English | 简体中文

✨ Features

  • 🚀 Fast Startup: Based on Rust, the build speed is extremely fast, bringing you the ultimate development experience.
  • Lightning HMR: With a built-in incremental compilation mechanism, HMR is extremely fast and fully capable of developing large-scale projects.
  • 📦 Webpack Interoperable: Compatible with the architecture and ecosystem of webpack, no need to build the ecosystem from scratch.
  • 🎨 Batteries Included: Out-of-the-box support for TypeScript, JSX, CSS, CSS Modules, Sass, and more.
  • 🛠️ Production Optimization: Various optimization strategies are built in by default, such as tree shaking, minification, etc.
  • 🎯 Framework Agnostic: Not bound to any frontend framework, ensuring enough flexibility.

Read Introduction for details.

Getting Started

Contribution

Please read the contributing guide and let's build Rspack together.

Code of Conduct

This repo has adopted the ByteDance Open Source Code of Conduct. Please check Code of Conduct for more details.

Community

Come chat with us on Discord! Rspack team and Rspack users are active there, and we're always looking for contributions.

Links

Name Description
Rspack website Official documentation for Rspack
rspack-examples Rspack configuration examples
rspack-sources Rust port of webpack-sources
rspack-migration-showcase Migration showcases for Rspack
rspack-compat Rspack compatible loaders and plugins examples
rsfamily-design-resources Design resources for Rspack, Rsbuild, Rspress and Rsdoctor

Contributors

Benchmark

See Benchmark

Credits

Thanks to:

  • The webpack team and community for creating a great bundler and ecosystem from which we draw a lot of inspiration.
  • @sokra for the great work on the webpack project.
  • @ScriptedAlchemy for creating Module Federation and helping Rspack connect with the community.
  • The SWC project created by @kdy1, which powers Rspack's code parsing, transformation and minification.
  • The esbuild project created by @evanw, which inspired the concurrent architecture of Rspack.
  • The NAPI-RS project created by @Brooooooklyn, which powers Rspack's node-binding implementation.
  • The Parcel project created by @devongovett which is the pioneer of rust bundler and inspired Rspack's incremental rebuild design.
  • The Vite project created by Evan You which inspired Rspack's compatibility design of webpack's ecosystem.
  • The rolldown-legacy project created by old Rolldown team, It's the predecessor of the rolldown project, which explores the possibility of making a performant bundler in Rust with Rollup-compatible API. It inspires the design principles of Rspack.
  • The html-webpack-plugin project created by @jantimon, @rspack/html-plugin is a fork of html-webpack-plugin to avoid some webpack API usage not supported in Rspack.
  • The Turbopack project which inspired the AST path logic of Rspack.
  • The react-refresh-webpack-plugin created by @pmmmwh, which inspires implement react refresh.
  • The [mini-css-extract-plugin] project created by @sokra which inspired implement css extract plugin.
  • The [copy-webpack-plugin] project created by @kevlened which inspired implement copy rspack plugin.

License

Rspack is MIT licensed.

rspack's People

Contributors

9aoy avatar ahabhgk avatar boshen avatar bvanjoi avatar caohuilin avatar chenjiahan avatar faga295 avatar github-actions[bot] avatar h-a-n-a avatar hamzakh777 avatar hardfist avatar herringtondarkholme avatar hyf0 avatar iwanabethatguy avatar jerrykingxyz avatar jkzing avatar jserfeng avatar kyrielii avatar lingyucoder avatar lippzhang avatar liuliudada-w avatar nieyuyao avatar renovate[bot] avatar suxin2017 avatar symind avatar tuchg avatar underfin avatar xc2 avatar zackarychapple avatar zoolsher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rspack's Issues

support runtime chunk

we currently inject runtime code in html by hand, which is not suitable if we want the code run in other environment like node, so we need to move the runtime code into runtimeChunk.

Design problem of load hook

For LoadedSource { content: Some("export default {}"), loader: None }, we should resolve default loader for it.

Workaround for svgr plugin

I think there is a workaround. We could easily transform a foo.svg file into const Foo: Component = <img src="data:base64......" />

Originally posted by @iheyunfei in #175 (comment)

style handle enhance

  1. less.js require cwd need arco pro with same folod node_modules

  2. url assets hook

  3. node_resolver clearfix

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.