Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is Multer 2.0 still alive? #1011

Closed
pubmikeb opened this issue Jun 4, 2021 · 9 comments
Closed

Is Multer 2.0 still alive? #1011

pubmikeb opened this issue Jun 4, 2021 · 9 comments

Comments

@pubmikeb
Copy link

pubmikeb commented Jun 4, 2021

Multer has been shifted to the 2.0.0 RC2 since March 2020.
Nowadays it's June 2021, but no RC3/RTM is released.
Moreover, Multer is not compatible with the latest official version of Node.js (16.x.x) anymore.

The question, is Multer project still alive, or should we be switching to alternative solutions?

Thanks.

@ddsultan
Copy link

What are the alternatives? Thanks.

@pubmikeb
Copy link
Author

pubmikeb commented Jun 29, 2021

Good question, currently I've made a fork/patched version of Multer due to incompatibility with Node.js 16.x.x (#995).
Hopefully, Multer's team will finish the Multer 2.0 project, it's in RC2 stage now.

@ddsultan
Copy link

ddsultan commented Jul 6, 2021

@pubmikeb, thanks for the response. It looks like last change on the RC was done ~1,25 years ago:

image

@pubmikeb
Copy link
Author

pubmikeb commented Jul 6, 2021

@pubmikeb, thanks for the response. It looks like last change on the RC was done ~1,25 years ago:

image

Yes, you're right and that's pity. It used to be a good project but now it doesn't support Node.js 16.x+

@sosnik
Copy link

sosnik commented Jul 21, 2021

What are the alternatives? Thanks.

The alternatives are, in no particular order:

  • node-formidable/formidable - in the same state as this project, npm is at 1.2.2 and hasn't been updated for years; they have 2.x and 3.x branches. 2.0.0 is ready-ish for release and available as an npm canary build, while 3.x is still in beta. The package maintainer / person with npm access hasn't been available for a number of months at the time of writing this.
  • pillarjs/multiparty - they claim to be slower than busboy, but the benchmark is from 2013!
  • mscdex/busboy - which this package is based on, but you'd need to re-write the middleware yourself.

These are the packages with 100k+ weekly downloads on npm; there may be other, less active, ones available.

FWIW I'm tempted to go with the 3rd option.

@pubmikeb
Copy link
Author

pubmikeb commented Jul 22, 2021

I would go with node-formidable/formidable, it seems like there is some activity in the repo and there are good chances to get a v.3.0 in Q3-Q4 2021. The version 3.0 has a new API with the modern JS, so if I would adopt node-formidable/formidable, I would go definitely with the version 3.0 and not v.1.2.x which is already deprecated or 2.0, which, I assume, is a temporarily release.

Generally, in case an external storage is used (e.g. Dropbox, AWS, etc.), it is better to use a native API of a storage service and forward an uploading stream directly to the storage, without proxying it through the application server to save RAM, CPU, and traffic. No storage API access token exposure required.

@sosnik
Copy link

sosnik commented Jul 23, 2021

I would go with node-formidable/formidable, it seems like there is some activity in the repo and there are good chances to get a v.3.0 in Q3-Q4 2021. The version 3.0 has a new API with the modern JS, so if I would adopt node-formidable/formidable, I would go definitely with the version 3.0 and not v.1.2.x which is already deprecated or 2.0, which, I assume, is a temporarily release.

Generally, in case an external storage is used (e.g. Dropbox, AWS, etc.), it is better to use a native API of a storage service and forward an uploading stream directly to the storage, without proxying it through the application server to save RAM, CPU, and traffic. No storage API access token exposure required.

This project has a very convenient limit() function that doesn't have a counterpart in other projects, including formidable. Which is why I'm holding out hope for both to release updates so I can compare.

Native async/await support would be good though.

@pubmikeb
Copy link
Author

This project has a very convenient limit()

Are you talking about mscdex/busboy?

BTW, async/await support is coming to node-formidable/formidable v.3.0.

@LinusU
Copy link
Member

LinusU commented Jul 29, 2021

I just published rc.3 with support for Node.js 16 🚀

Read more about it here: #399 (comment)

Also, I will close this with the answer "yes", but feel free to ask me any more specific questions and I shall answer!

@LinusU LinusU closed this as completed Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants