Skip to content

Maintainer Wanted #412

Open
Open

Description

@felixge

I haven't maintained this module in a while*, and PRs are piling up.

If anybody is interested in helping out, I'm happy to give commit bits + npm package access.

To get access, please try to write 1-2 sentences that give me a reasonable hope you're not looking to put malicious code into the package and also mention your npm account name.

* For those curious about the "why?", I'm working with Go these days haven't been using node.js for over 3 years now.

Activity

  1. felixge commented on Jan 11, 2017

    @felixge
    CollaboratorAuthor

    @pornel sounds good. What's your NPM account? I'll give you access :). Thanks!

  2. kornelski commented on Jan 11, 2017

    @kornelski
    Contributor

    I'm kornel on npm

  3. ChALkeR commented on Jan 11, 2017

    @ChALkeR
  4. felixge commented on Jan 13, 2017

    @felixge
    CollaboratorAuthor

    @pornel thanks, added you on GH and NPM :).

    @ChALkeR done.

  5. tunnckoCore commented on Jan 13, 2017

    @tunnckoCore
    Member

    I also can help when have time. I have Koajs package koa-better-body that uses formidable. It's about 3 years old and many users use it, and using it exactly because formidable.

    I'm all-lowercased tunnckocore at npm.

  6. badeball commented on Jan 13, 2017

    @badeball
    Contributor

    Hi, @felixge

    I'm happy to help as well. I have decent experience in creating and maintaining libraries, as well as packaging and releasing. @pornel, maybe you want someone to spar with?

  7. kornelski commented on Jan 13, 2017

    @kornelski
    Contributor

    Sure, the more the merrier.

  8. felixge commented on Jan 14, 2017

    @felixge
    CollaboratorAuthor

    @tunnckoCore added you on gh and npm.

    @badeball added you only on gh since you didn't provide your npm handle.

    @ all: Thank you so much for offering your help. I'll leave it up to you if you just want to merge good PRs, or add new features. A lot of people depend on this library, so big API changes are probably undesirable at this point. Anyway, I'll mostly stay out of it, unless you need my help to break a tie on a discussion or similar.

  9. tunnckoCore commented on Jan 14, 2017

    @tunnckoCore
    Member

    @felixge cool, thanks!

    so big API changes are probably undesirable at this point.

    Maybe yea. First we should try to clear the most issues.

    We should add some more benchmarks against the other parsers like dicer and busboy, because I'm curious if formidable is still faster.

  10. felixge commented on Jan 16, 2017

    @felixge
    CollaboratorAuthor

    We should add some more benchmarks against the other parsers like dicer and busboy, because I'm curious if formidable is still faster.

    I would expect newer libraries to be faster. I mean I wrote most of the parser 6 years ago, and a lot of things have changed in Node/v8 since then. There was also a lot of time to just improve on my initial ideas :).

    Anyway, it would be interesting to see where things are at, but I'd be surprised if formidable wasn't "fast enough" anymore. If it can still process data faster than what your network interface on your server is rated for ... the code is probably fast enough :)

  11. tunnckoCore commented on Jan 16, 2017

    @tunnckoCore
    Member

    Yea exactly. In any way it is always good to have some comparison to know where we are. :)

  12. added a commit that references this issue on Mar 2, 2017
  13. blueelvis commented on Apr 20, 2017

    @blueelvis

    @tunnckoCore - I would also like to help with this project :)

  14. tunnckoCore commented on Apr 20, 2017

    @tunnckoCore
    Member

    Very important things should be done first. Sadly I don't have the time, but veryt hanks for that @felixge added me. I always trying to comment and help in new issues, but sadly I can't commit new things and fixes. I partially believe that this project deserve to be rewritten to be more accurate.

    @blueelvis It woul dbe great if you can help with the issues and the commented on #414 and #415, because I'm very tired about the whole community and I'm in pause (for relax) currently and I'm not doing anything last few weeks or so (just rage quit).

  15. richard457 commented on Jul 7, 2017

    @richard457

    I am Interested As I need this module so much in my file Storage System and I am using it now on it streamupbox, and is my NPM name too. thank you.

  16. 32 remaining items

  17. GrosSacASac commented on Apr 29, 2021

    @GrosSacASac
    Contributor

    If someone has npm access, please help resolve #718 (comment)

  18. MaxFichtelmann commented on Apr 29, 2021

    @MaxFichtelmann
    Collaborator

    npm is also needed to publish v1.2.3 (7e07387)

  19. tunnckoCore commented on Oct 2, 2021

    @tunnckoCore
    Member

    @MaxFichtelmann what's v1.2.3? Just that package.json change? Well, yea possibly when i published 1.2.2 i forgot to bump to version in package.json or what? hm.

  20. GrosSacASac commented on Oct 3, 2021

    @GrosSacASac
    Contributor

    If I am correct 1.2.3 has a fix (2021) on top of 1.2.2 but was not published to npm

  21. tunnckoCore commented on Oct 4, 2021

    @tunnckoCore
    Member

    Hm. Okay clear. I'll try.

  22. MaxFichtelmann commented on Oct 4, 2021

    @MaxFichtelmann
    Collaborator

    the change was a fix for #433
    some minor changes were needed to make the tests/travis work again/current node versions

    details: v1.2.1...v1.2.3

  23. tunnckoCore commented on Oct 12, 2021

    @tunnckoCore
    Member

    Ah, right. Thanks @MaxFichtelmann

  24. GrosSacASac commented on Jan 16, 2022

    @GrosSacASac
    Contributor

    I don't even know how to test if form.pause() and resume work. We have 2 issues around this, and don't know where to start.

  25. added
    Type: MaintenanceUpdating phrasing or wording to make things clearer or removing ambiguity, without a functionality.
    and removed on Apr 2, 2022
  26. wbt commented on Apr 12, 2022

    @wbt
    Collaborator

    I'm a maintainer on the widely-used 'winston' logger (w-b-t on npm; 2FA required for that b/c it's a top-100 package) and while I can't promise any active maintenance here, I might be able to chip in on occasion (example here).

  27. tunnckoCore commented on Apr 29, 2022

    @tunnckoCore
    Member

    @wbt great, it's always better to have more hands and eyes. Can add you this next few days. Many things are commented and have opened issues for tracking.

  28. nagy-nabil commented on Dec 28, 2022

    @nagy-nabil

    hello, it's my first time on open source project, I'm curious how parsing multi-part forms work
    I started my search by looking for the request interface with contenttype="multi-part/form" and I started getting results
    also I tried to read through "src/Formidable.js", I was wondering can I migrate "@types/formidable" inside the project to make my mission easier
    any resources to help me understand the parsing process would be appreciated
    btw I used formidable myself in a couple of projects

  29. tunnckoCore commented on Dec 30, 2022

    @tunnckoCore
    Member

    @nagy-nabil welcome to open source! 👋

    Formidable is a very old project (11 years), and its codebase might be a bit unintuitive. There are parts that sit there because of legacy reasons.

    To understand the flow and look on a bit more modern base you can check out formidable-mini that I created to play around a while ago, around the same parser. But the whole thing is significantly more small because there are many things that got into the JS/nodejs core like File and FormData. The even funnier thing is that in Nodejs v19.2+ (and in the future v20 LTS) there will be NO need for any package - just 15 lines of code around native things.

    For example:

    // example request handler (e.g. express middleware, or serverless)
    function handler(req, res) {
      // getting/"parsing" file uploads and fields in v19.2+
      const resp = new Response(req, { headers: req.headers });
      const form = await resp.formData();
    
      console.log([...form.entries()]);
    }

    This magic works, because the competitor package busbuy got into Nodejs Core. There was discussion to be formidable or busboy and they picked Busboy because it was bumped to v1 this year and it's probably a bit faster nowadays but that can change soon.

    Btw, Formidable's parser is used in node-fetch too. It was copy pasted without any note or attribution anywhere. And I copy pasted the modernized variant into formidable-mini too. I tried some benchmarks there too, and from what I'm seeing, it's on par with the latest busboy that got into the Node Core.

    The parser itself... it's tricky but kind of easy to follow and understand (it's the least touched thing over the years), if you are into parsing in general tho, it's not my specialty.. haha. I think to write a new parser from scratch (for learning purposes) one day based on what I learned over the years here.

    Soon I'll buy a domain, create a website and write a long article around Formidable its past, present and future - the whole state of multipart parsing ("A letter to the stakeholders", haha). Because as you can see, its state and existence is... For 11 years, it's everywhere, in every 9 of 10 articles for nodejs multipart parsing and file uploads, even in Node's official website guide about file uploads. And it's STILL the most downloaded, 2x more than Busboy in fact - https://twitter.com/3a1fcBx0/status/1535663399291564047.

  30. Kilkenni commented on Aug 31, 2026

    @Kilkenni

    @tunnckoCore What's the current status of Formidable-mini? I've tried to check it out, but so far it lacks even the TS definitions. GH history shows 404 when I try to go to its repo from the old monorepo - I assume the origin of this merge is your private repo. I threw up some smol TS def to calm down the TS language server, and I probably can share it if you wish.

    Btw, the site listed in your bio seems to be dead.

    Writing here because I'm really not sure where should I write.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: MaintenanceUpdating phrasing or wording to make things clearer or removing ambiguity, without a functionality.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions