Boshen Profile Banner
Boshen Profile
Boshen

@boshen_c

3,822
Followers
463
Following
419
Media
2,221
Statuses

Building oxc and @rolldown_rs , previously @rspack_dev .

Joined July 2016
Don't wanna be here? Send us removal request.
Pinned Tweet
@boshen_c
Boshen
3 months
The snowball is rolling! Preact to oxlint. As a bonus, the project is being added to our ecosystem ci as we speak
Tweet media one
@JoviDeC
jovi 🐨
3 months
Preact also moved to oxlint and our linting step went down from about 9-10 seconds to 500-1000ms
1
9
51
1
12
85
@boshen_c
Boshen
4 months
"Oxc or me?"
Tweet media one
Tweet media two
69
3
443
@boshen_c
Boshen
8 months
If you are bored and is looking for open source contributions, here is a cool trick: Find a repo and run `npx oxlint @latest -D no-constant-binary-expression` and then fix the bugs 😅 Sorry for picking you as an example @getsentry 🌹
Tweet media one
7
22
308
@boshen_c
Boshen
10 months
Oxlint has a new external customer! A 5M LOC typescript codebase previously running ESLint parallelized across 48 workers in CI taking 75 mins (12m wall time), it is now 8 seconds on a single worker. Checkout if you haven't already 😁
9
19
272
@boshen_c
Boshen
5 months
Public 👀
Tweet media one
11
17
245
@boshen_c
Boshen
1 month
Releasing isolated declarations for standalone dts emit before TypeScript releases theirs 😛 It is at least 20 times faster than tsc on a single core, and probably 100 times faster when parallelized by a native bundler - as what @robpalmer2 and the team envisioned when they
Tweet media one
Tweet media two
9
34
233
@boshen_c
Boshen
9 months
Rolldown is real! If you are a frontend engineer who wants to get involved with the next generation of toolings, learning Rust will get you invited into these amazing projects such as rolldown, rspack and oxc! We need a lot of helping hands!
Tweet media one
16
17
229
@boshen_c
Boshen
6 months
The Oxc parser is now 3 times faster than the @swc_rs parser and 4.4 times faster than the @biomejs parser. All accomplished by an exceptional contributor. Relevant PRs:
Tweet media one
10
15
226
@boshen_c
Boshen
10 months
Zack is insane, he is using Oxc (Rust) to compile TypeScript type definitions to bytecode, it then gets run by an interpreter written in Zig. He demoed me a flappy bird game which is run in the browser using this type-vm. wtf.
@zack_overflow
zack (in SF)
10 months
It's not Zig vs Rust... its Zig and Rust An unexpected power combo for a project I'm working on. Doing the high-level things in Rust, and the hardcore low-level stuff in Zig
Tweet media one
56
83
1K
4
15
177
@boshen_c
Boshen
7 months
2023: * Worked on Oxc and Rspack, both reached 6.4k GitHub stars * Involved with open sourcing Oxc, Rspack and Biome * Made friends all over the world, talked to many renowned people * Got married 2024: Get healthier, get more sleep, and write more code.
Tweet media one
2
1
173
@boshen_c
Boshen
8 months
Tweet media one
8
6
158
@boshen_c
Boshen
7 months
Released Oxlint v0.2.0 * Better eslintrc.json support * Next.js Plugin * vue, astro and svelte support in VSCode extension * Made the parser 10% faster after getting nerd sniped
3
21
153
@boshen_c
Boshen
1 year
A serious survey: how much would you or your company sponsor for this? ~80 times faster and 100M lighter linting compared to TypeScript + ESLint. You sponsor for feature development and get rewarded with huge dx and ux on js tooling improvement.
Tweet media one
10
16
147
@boshen_c
Boshen
1 year
👀
Tweet media one
9
19
140
@boshen_c
Boshen
3 months
Is this something we want for barrel files? @_developit @passle_ @marvinhagemeist
Tweet media one
11
11
137
@boshen_c
Boshen
6 months
Dependency graph before and after using @biomejs . This is crucial for companies with strict security on dependencies. This will also cut out all the noise from your dependency/renovate bot.
Tweet media one
Tweet media two
5
10
130
@boshen_c
Boshen
3 months
oxc! Thank you @icarusgkx !
Tweet media one
4
7
126
@boshen_c
Boshen
7 months
If your new year's resolution is to learn Rust - Oxc and @biomejs are still looking for more contributors.
4
17
122
@boshen_c
Boshen
1 month
I can't believe the team is shipping @rolldown_rs to @stackblitz , what should we call this? Cloud bundling? Wasi bundling? This took @Brooooook_lyn countless hours fighting crashes from unknown sys calls without stack traces in a black box 🫡
2
16
121
@boshen_c
Boshen
23 days
Refining the oxc logos with human touch - the current one is AI generated 😅
Tweet media one
7
6
119
@boshen_c
Boshen
2 months
Tweet media one
2
5
118
@boshen_c
Boshen
9 months
Published oxc to vscode extensions, call for testing!
Tweet media one
6
13
115
@boshen_c
Boshen
1 year
So I've got a plan for the blazingly fast Oxc Linter. I want to create a linter that is 1. zero-config and 2. only reports correctness errors (code that is outright wrong or useless). Give this tweet a like if you want something like this.
Tweet media one
11
4
110
@boshen_c
Boshen
1 year
I donated The Oxidation Compiler (Oxc) to [Web Infra] under the MIT license. I will remain as the technical leader and owner of this project without conditions. This means I get to work full time on open source. Great things ahead.
7
7
109
@boshen_c
Boshen
11 months
When you use software from people who care: Your project takes 0 seconds to install, lint and test.
Tweet media one
2
11
108
@boshen_c
Boshen
3 months
People should try @biomejs or oxlint before the eslint v9 upgrade so you don't end up wasting hours of your precious time. For biome, checkout , this should take around 10 minutes For oxlint, just run `npx oxlint @latest `, this will take around 3 seconds.
@silvenon
Matija Marohnić
3 months
After a while of this I started wondering what will I even gain from this. I'm just migrating to a DIFFERENT config format and losing rules. Despite reading flat config blog posts and the changelog, I failed to understand the benefits. So, finally, I migrated to @biomejs !
7
1
10
11
12
107
@boshen_c
Boshen
3 months
I'm so happy today. My work commute distance is drastically reduced from 70 minutes to 0.5 metres. Big announcement coming soon!
5
0
108
@boshen_c
Boshen
6 months
Barrel files are the bane of monorepos. You'll accidentally pull in your node_module's black hole and start blaming the slowness of your webpack / rspack / vite build. I've seen it with my own eyes during on-calls.
@passle_
Passle
6 months
And a quick little eslint plugin against barrel files
4
11
133
5
10
105
@boshen_c
Boshen
24 days
TIL the codebase of and (the flagship AI products from ByteDance) uses oxlint. The codebase is a huge monorepo with a few million lines of code and is growing at a rapid speed. They enabled and depend heavily on the
2
7
104
@boshen_c
Boshen
1 month
Just downloaded node v0.0.4! No prebuilt binary and I don't have python. To the next version!
Tweet media one
7
3
105
@boshen_c
Boshen
4 months
Reimplementing the Oxc transpiler / transformer. This is a call for help, if you enjoy Rust, JavaScript, Babel, open source collaboration and performance engineering.
Tweet media one
2
26
104
@boshen_c
Boshen
1 month
I heard the new bundler "farm" performed better, so I took a quick testing ... Quick summary (from the screenshot below): 1. Build time printed by the tool is useless, use /usr/bin/time instead 2. bundle correctness and size is far more important, performance should be compared
Tweet media one
Tweet media two
5
11
103
@boshen_c
Boshen
3 months
Oxlint Import Plugin Alpha Release This port aims to resolve all known issues associated with eslint-plugin-import: * Performance - execution time exceeding one minute when certain rules are enabled * Dependency size - 188 dependencies totaling 30M *
5
14
102
@boshen_c
Boshen
9 months
My Mac got faster!
Tweet media one
3
4
100
@boshen_c
Boshen
19 days
If you're interested in learning and building a JavaScript runtime on top of oxc:
1
12
102
@boshen_c
Boshen
1 month
I can't get enough of benchmarks 🤡 @rolldown_rs at 40ms for this particular benchmark.
Tweet media one
2
10
97
@boshen_c
Boshen
9 months
Frontend is too hard for me. I need some helping hands to turn my joke looking landing page into something beautiful. Perhaps start with swapping docusaurus to something better? What's the state of art nowadays? Can AI help me?
Tweet media one
27
7
96
@boshen_c
Boshen
7 days
Beautiful performance improvement.
Tweet media one
1
2
101
@boshen_c
Boshen
11 days
Oxsea
Tweet media one
2
0
93
@boshen_c
Boshen
2 months
😅
Tweet media one
3
3
91
@boshen_c
Boshen
1 year
Public!
Tweet media one
3
16
89
@boshen_c
Boshen
7 months
Released Oxlint v0.0.22 * check for const comparisons, double comparisons and impossible comparisons (the rules are from Rust clippy) * improved error spans and help messages * fixed many false positives * 10 - 20% times faster Sorry @calcom for picking
Tweet media one
1
7
89
@boshen_c
Boshen
5 months
WAIT WAIT WHAT IS THIS??? Sentry acquired codecov and started adding features? In this economy?
Tweet media one
2
3
87
@boshen_c
Boshen
13 days
oxc-resolver after getting adopted by
Tweet media one
2
4
86
@boshen_c
Boshen
1 year
Apparently vuejs/core has only 4 eslint rules and a jest plugin 🤯 Perfect repo for testing oxlint on. Yes it is now called "oxlint", our first version ships with 31 correctness rules. This project runs fast, compiles fast, and releases fast 😉
Tweet media one
6
8
83
@boshen_c
Boshen
9 months
Legendary.
Tweet media one
1
2
80
@boshen_c
Boshen
1 year
I have released version 0.0.1 of the Oxidation Linter. The goal of this release is to showcase speed, pretty diagnostics and small binary size. You can try it out with: npx oxidation-compiler @latest lint path
Tweet media one
Tweet media two
7
12
81
@boshen_c
Boshen
7 months
Fun fact: I tried porting TS type inference to Oxc last year, ended up with 3k lines of Rust. I scarified 7 holidays without much sleep nor food. The attempt was stopped because I had to work, who's gonna pay my bills and health otherwise? Here's the code for enjoyment:
4
9
80
@boshen_c
Boshen
23 days
3
3
80
@boshen_c
Boshen
1 year
I'll be on holiday and afk for the next 5 days. I may end up on a beach and oxidize my brain. 800 stars and counting, thank you all for the motivation 😀
4
4
79
@boshen_c
Boshen
9 months
坚持初衷,希望我创建的产品能够改善前端环境。
4
1
77
@boshen_c
Boshen
7 months
Yes yes yes! More performance from Rust 1.75.0 upgrade!
Tweet media one
1
3
76
@boshen_c
Boshen
2 months
I forked browserslist-rs to make some improvements for the oxc project, its compile time is improved from a minute to a few seconds. I left some future work in the README if you want to practice some Rust.
1
13
76
@boshen_c
Boshen
3 months
Let me brag about this conversation with a company using oxlint They: we removed eslint Me: all the cloud CI money saved! They: probably millions of dollars already Me: no shit! They: we had to completely rethink our whole CI pipeline because previously it was built around
8
9
75
@boshen_c
Boshen
27 days
I was sitting next to @Brooooook_lyn this morning and he was like noob why don't read my docs, and PRed in front of me and got rid of 134kB of crap the binary. Now I just need to figure out how to get rid of more crap that Rust put in with telling me so ...
Tweet media one
7
3
75
@boshen_c
Boshen
9 months
lmao oxc repo went haywire over the past 24 hours, we are just having so much fun! Prettier compatibility? 3/173 (1.73%) 🤡
Tweet media one
5
0
74
@boshen_c
Boshen
8 months
On Hacker News!
Tweet media one
2
3
73
@boshen_c
Boshen
16 days
Simplest performance optimization = reduce memory usage. Merging #4264 will improve performances by 17.05% PR:
1
4
71
@boshen_c
Boshen
5 months
What's coming next in oxlint: import plugin with tsconfig support for paths aliases and project references. On an i7: 1172 files done in 216ms How? I wrote a resolver 😅
Tweet media one
5
6
70
@boshen_c
Boshen
6 months
Oxc's two year anniversary 🎂
Tweet media one
Tweet media two
3
8
71
@boshen_c
Boshen
5 months
OMG contribution opportunity that I don't have time for 😡
Tweet media one
Tweet media two
2
7
70
@boshen_c
Boshen
8 months
With my bro @jarredsumner 🤜🤛 Thank you JavaScript Weekly!
Tweet media one
0
5
70
@boshen_c
Boshen
3 months
Shopify Admin used oxlint and vite.
Tweet media one
2
6
71
@boshen_c
Boshen
7 months
8.5 years.
Tweet media one
5
5
66
@boshen_c
Boshen
3 months
no-floating-promises
Tweet media one
6
5
68
@boshen_c
Boshen
11 months
What a demoralizing week. No wonder open source maintainers gets depressed so quick to the point that they quit the whole industry. To all open source maintainers, please take care of yourself, spend more time with your family, and cheer up ❤️
2
7
68
@boshen_c
Boshen
7 months
Made the oxc parser 5% faster by getting nerd sniped and watching the Data Orientated Design video for the 5th time PR:
Tweet media one
4
2
67
@boshen_c
Boshen
9 months
Affine 🤝 oxlint 2 seconds for yarn installation, 108ms to lint 931 files 🤷
Tweet media one
4
4
66
@boshen_c
Boshen
1 year
Rspack has its own Rust version of "enhance-resolve". I spent the last two weeks optimizing the shit out of it, which resulted a 15x improvement in cpu time and half the total number of sys calls.
Tweet media one
Tweet media two
Tweet media three
5
4
64
@boshen_c
Boshen
8 months
How It Started vs. How It's Going
Tweet media one
1
0
62
@boshen_c
Boshen
8 months
Intense "battle" between biome and oxc, both reaching 4k stars. If you haven't already: star biome: star oxc:
Tweet media one
2
4
62
@boshen_c
Boshen
2 months
Reach out to @mileswjohnson if you need a 10x developer. I vouch for him because I worked with him before and he always amazes me with his deep knowledge in the Rust and Node.js ecosystem.
Tweet media one
@mileswjohnson
Miles . 마일스
2 months
Updated my resume and applied to a few new positions ;)
6
1
20
0
3
62
@boshen_c
Boshen
1 year
The Oxc parser passes all of Test262. Contact me if you need a fast and simple to use JavaScript parser for ad hoc tasks. Test262 Summary: AST Parsed : 44000/44000 (100.00%) Positive Passed: 44000/44000 (100.00%) Negative Passed: 3915/3915 (100.00%)
4
10
62
@boshen_c
Boshen
3 months
I went to the largest internal codebase in person, ran oxlint, and it completed 122,630 files in 3.4 seconds. > Finished in 3.4s on 122,630 files with 92 rules using 24 threads. > Found 23095 warnings and 57 errors. Fixing 23,095 warnings is going to be hard, but they don't
0
3
60
@boshen_c
Boshen
6 months
> Performance is the currency of computing. You can often "buy" needed properties with performance.
Tweet media one
2
10
60
@boshen_c
Boshen
7 months
I'll never create a drop-in-replacement for eslint because your configuration is 1860 lines long.
Tweet media one
2
6
59
@boshen_c
Boshen
1 year
Me: there is no way people will declare `undefined`. First line of lodash: /** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined;
3
0
57
@boshen_c
Boshen
1 year
Oxc has a playground now. Need more knobs but it works. I built it with CodeMirror in plain JavaScript without any frameworks, which I think is what web twitter has been preaching about 🤡 Code: Playground:
Tweet media one
6
9
56
@boshen_c
Boshen
1 year
✨ oxidation-compiler/napi has been released * supports sync and async parsing * similar API as babel * npm: 🚧 Coming soon * Typings for the AST * Semantic SDK Project Link Published for the one and only @youyuxi 😁
Tweet media one
2
6
56
@boshen_c
Boshen
6 months
I published the oxc parser with wasm target so you can use it in the browser (not node.js). And it's fully TypeScript typed!
4
9
55
@boshen_c
Boshen
12 days
While I'm hanging out with koalas and kangaroos, @Dunqingg and @overlook_motel found another 30% performance improvement by using data oriented design techniques. Really great read on how they managed to find it:
0
7
55
@boshen_c
Boshen
1 year
🙌 oxc parser is open for business. I added usage documentation and uploaded code coverage (92.38%).
Tweet media one
Tweet media two
Tweet media three
2
8
55
@boshen_c
Boshen
14 days
To ensure oxc's stability, I have setup an e2e test suite that will run all tools on all top npm packages (goal is 5000+). The test suite contains idempotency test and runtime test right now, what else can I add to ensure maximum stability? I want to
1
5
55
@boshen_c
Boshen
1 year
> The majority of the remaining package size is eslint support, which necessitates distributing a CJS build Oxc linter offers a 400kB wasm build, and it'll get smaller once I try to optimize it.
1
3
55
@boshen_c
Boshen
9 months
3K! 🥳 This is such a motivational boost for me, thank you all!
Tweet media one
1
0
54
@boshen_c
Boshen
5 months
Tweet media one
6
1
54
@boshen_c
Boshen
1 year
Oxlint v0.0.7 has been released 🎉 This release has welcomed 10 new contributors. A true testament to the power of open-source, as it showcases contributions solely from the community, many of whom are newcomers to Rust 🦀.
0
5
54