using build-in zstd on nodejs

XMLWordPrintableJSON

    • Type: New Feature
    • Resolution: Duplicate
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: Compressors
    • Not Needed
    • None
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • None
    • None
    • None
    • None
    • None
    • None

      Use Case

      As a developer
      I want to avoid downloading `@mongodb-js/zstd` and use built-in zstd implementation from `zlib` (that was introduced in node 22.15.0)
      So that there are less dependencies and less security concerns about binary files in dependencies and it's easier to enable without rebuilding the application

      User Experience

      • zstd can be used without fetching `@mongodb-js/zstd`
      • `@mongodb-js/zstd` can still be used on legacy environments

      Risks/Unknowns

      • Developers could use zstd compression on environments with modern nodejs and then it won't run via older nodejs
      • node 20 already reached EOL

      Acceptance Criteria

      Implementation Requirements

      • there should be no difference between running built-in ztsd or `@mongodb-js/zstd`

      Documentation Requirements

      • every mention of `@mongodb-js/zstd` in docs should be updated, to indicate that it's optional

            Assignee:
            Unassigned
            Reporter:
            Konrad Baumgart (EXT)
            None
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: