tangerine 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +493 -39
  2. package/index.d.ts +660 -0
  3. package/index.js +298 -44
  4. package/package.json +7 -4
package/README.md CHANGED
@@ -398,6 +398,7 @@ Similar to the `options` argument from `new dns.promises.Resolver(options)` invo
398
398
  | `returnHTTPErrors` | `Boolean` | `false` | Whether to return HTTP errors instead of mapping them to corresponding DNS errors. |
399
399
  | `smartRotate` | `Boolean` | `true` | Whether to do smart server rotation if servers fail. |
400
400
  | `defaultHTTPErrorMessage` | `String` | `"Unsuccessful HTTP response"` | Default fallback message if `statusCode` returned from HTTP request was not found in [http.STATUS_CODES](https://nodejs.org/api/http.html#httpstatus_codes). |
401
+ | `parallelResolution` | `Boolean` | `false` | Enable parallel resolution for querying DNS servers. |
401
402
 
402
403
 
403
404
  ## Cache
@@ -533,15 +534,25 @@ We have written extensive benchmarks to show that :tangerine: Tangerine is as fa
533
534
 
534
535
  #### Latest Automated Benchmark Results
535
536
 
536
- **Last Updated:** 2025-12-21
537
+ **Last Updated:** 2026-02-26
537
538
 
538
539
  | Node Version | Platform | Arch | Timestamp |
539
540
  | ------------ | -------- | ---- | ------------ |
540
541
  | v18.20.8 | linux | x64 | Dec 21, 2025 |
541
- | v20.19.6 | linux | x64 | Dec 21, 2025 |
542
+ | v20.19.6 | linux | x64 | Jan 22, 2026 |
543
+ | v20.20.0 | linux | x64 | Feb 25, 2026 |
542
544
  | v22.21.1 | linux | x64 | Dec 21, 2025 |
545
+ | v22.22.0 | linux | x64 | Jan 23, 2026 |
543
546
  | v24.12.0 | linux | x64 | Dec 21, 2025 |
547
+ | v24.13.0 | linux | x64 | Feb 19, 2026 |
548
+ | v24.13.1 | linux | x64 | Feb 26, 2026 |
544
549
  | v25.2.1 | linux | x64 | Dec 21, 2025 |
550
+ | v25.3.0 | linux | x64 | Jan 14, 2026 |
551
+ | v25.4.0 | linux | x64 | Jan 20, 2026 |
552
+ | v25.5.0 | linux | x64 | Jan 27, 2026 |
553
+ | v25.6.0 | linux | x64 | Feb 4, 2026 |
554
+ | v25.6.1 | linux | x64 | Feb 11, 2026 |
555
+ | v25.7.0 | linux | x64 | Feb 25, 2026 |
545
556
 
546
557
  <details>
547
558
  <summary>Click to expand detailed benchmark results</summary>
@@ -550,7 +561,7 @@ We have written extensive benchmarks to show that :tangerine: Tangerine is as fa
550
561
 
551
562
  **lookup:**
552
563
 
553
- ```
564
+ ```text
554
565
  Started: lookup
555
566
  tangerine.lookup POST with caching using Cloudflare x 757 ops/sec ±195.51% (88 runs sampled)
556
567
  tangerine.lookup POST without caching using Cloudflare x 120 ops/sec ±1.43% (81 runs sampled)
@@ -563,7 +574,7 @@ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
563
574
 
564
575
  **resolve:**
565
576
 
566
- ```
577
+ ```text
567
578
  Started: resolve
568
579
  tangerine.resolve POST with caching using Cloudflare x 953 ops/sec ±195.82% (88 runs sampled)
569
580
  tangerine.resolve POST without caching using Cloudflare x 116 ops/sec ±1.16% (80 runs sampled)
@@ -580,7 +591,7 @@ Fastest without caching is: tangerine.resolve POST without caching using Google
580
591
 
581
592
  **reverse:**
582
593
 
583
- ```
594
+ ```text
584
595
  Started: reverse
585
596
  tangerine.reverse GET with caching x 628 ops/sec ±195.51% (84 runs sampled)
586
597
  tangerine.reverse GET without caching x 118 ops/sec ±1.12% (80 runs sampled)
@@ -595,44 +606,82 @@ Fastest without caching is: dns.promises.reverse without caching
595
606
 
596
607
  **lookup:**
597
608
 
598
- ```
609
+ ```text
599
610
  Started: lookup
600
- tangerine.lookup POST with caching using Cloudflare x 795 ops/sec ±195.51% (87 runs sampled)
601
- tangerine.lookup POST without caching using Cloudflare x 306 ops/sec ±1.81% (83 runs sampled)
602
- tangerine.lookup GET with caching using Cloudflare x 298,127 ops/sec ±0.28% (90 runs sampled)
603
- tangerine.lookup GET without caching using Cloudflare x 307 ops/sec ±1.94% (83 runs sampled)
604
- dns.promises.lookup with caching using Cloudflare x 9,509,305 ops/sec ±0.47% (88 runs sampled)
605
- dns.promises.lookup without caching using Cloudflare x 3,250 ops/sec ±0.73% (85 runs sampled)
611
+ tangerine.lookup POST with caching using Cloudflare x 820 ops/sec ±195.45% (88 runs sampled)
612
+ tangerine.lookup POST without caching using Cloudflare x 212 ops/sec ±2.98% (79 runs sampled)
613
+ tangerine.lookup GET with caching using Cloudflare x 290,812 ops/sec ±0.74% (88 runs sampled)
614
+ tangerine.lookup GET without caching using Cloudflare x 260 ops/sec ±2.00% (82 runs sampled)
615
+ dns.promises.lookup with caching using Cloudflare x 8,961,323 ops/sec ±0.78% (86 runs sampled)
616
+ dns.promises.lookup without caching using Cloudflare x 3,143 ops/sec ±0.57% (85 runs sampled)
606
617
  Fastest without caching is: dns.promises.lookup without caching using Cloudflare
607
618
  ```
608
619
 
609
620
  **resolve:**
610
621
 
611
- ```
622
+ ```text
612
623
  Started: resolve
613
- tangerine.resolve POST with caching using Cloudflare x 1,016 ops/sec ±195.82% (89 runs sampled)
614
- tangerine.resolve POST without caching using Cloudflare x 303 ops/sec ±3.25% (79 runs sampled)
615
- tangerine.resolve GET with caching using Cloudflare x 1,071,513 ops/sec ±0.32% (89 runs sampled)
616
- tangerine.resolve GET without caching using Cloudflare x 339 ops/sec ±1.13% (84 runs sampled)
617
- tangerine.resolve POST with caching using Google x 1,031,970 ops/sec ±0.28% (90 runs sampled)
618
- tangerine.resolve POST without caching using Google x 356 ops/sec ±13.06% (79 runs sampled)
619
- tangerine.resolve GET with caching using Google x 1,032,838 ops/sec ±0.28% (90 runs sampled)
620
- tangerine.resolve GET without caching using Google x 364 ops/sec ±5.78% (77 runs sampled)
621
- resolver.resolve with caching using Cloudflare x 7,820,907 ops/sec ±0.65% (86 runs sampled)
622
- resolver.resolve without caching using Cloudflare x 16.20 ops/sec ±189.31% (79 runs sampled)
623
- Fastest without caching is: tangerine.resolve GET without caching using Google
624
+ tangerine.resolve POST with caching using Cloudflare x 1,034 ops/sec ±195.81% (89 runs sampled)
625
+ tangerine.resolve POST without caching using Cloudflare x 221 ops/sec ±1.83% (80 runs sampled)
626
+ tangerine.resolve GET with caching using Cloudflare x 1,044,036 ops/sec ±0.36% (89 runs sampled)
627
+ tangerine.resolve GET without caching using Cloudflare x 272 ops/sec ±1.57% (83 runs sampled)
628
+ tangerine.resolve POST with caching using Google x 1,035,748 ops/sec ±0.31% (89 runs sampled)
629
+ tangerine.resolve POST without caching using Google x 236 ops/sec ±0.93% (85 runs sampled)
630
+ tangerine.resolve GET with caching using Google x 1,027,998 ops/sec ±0.25% (89 runs sampled)
631
+ tangerine.resolve GET without caching using Google x 230 ops/sec ±1.04% (83 runs sampled)
632
+ resolver.resolve with caching using Cloudflare x 7,717,855 ops/sec ±0.67% (85 runs sampled)
633
+ resolver.resolve without caching using Cloudflare x 24.10 ops/sec ±180.34% (37 runs sampled)
634
+ Fastest without caching is: tangerine.resolve GET without caching using Cloudflare
624
635
  ```
625
636
 
626
637
  **reverse:**
627
638
 
639
+ ```text
640
+ spawnSync /bin/sh ETIMEDOUT
628
641
  ```
642
+
643
+ ##### Node.js v20.20.0
644
+
645
+ **lookup:**
646
+
647
+ ```text
648
+ Started: lookup
649
+ tangerine.lookup POST with caching using Cloudflare x 732 ops/sec ±195.51% (87 runs sampled)
650
+ tangerine.lookup POST without caching using Cloudflare x 117 ops/sec ±1.61% (79 runs sampled)
651
+ tangerine.lookup GET with caching using Cloudflare x 299,941 ops/sec ±1.15% (89 runs sampled)
652
+ tangerine.lookup GET without caching using Cloudflare x 117 ops/sec ±1.43% (80 runs sampled)
653
+ dns.promises.lookup with caching using Cloudflare x 1,383 ops/sec ±195.97% (87 runs sampled)
654
+ dns.promises.lookup without caching using Cloudflare x 2,374 ops/sec ±0.56% (86 runs sampled)
655
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
656
+ ```
657
+
658
+ **resolve:**
659
+
660
+ ```text
661
+ Started: resolve
662
+ tangerine.resolve POST with caching using Cloudflare x 974 ops/sec ±195.82% (89 runs sampled)
663
+ tangerine.resolve POST without caching using Cloudflare x 130 ops/sec ±1.30% (87 runs sampled)
664
+ tangerine.resolve GET with caching using Cloudflare x 1,049,956 ops/sec ±1.53% (85 runs sampled)
665
+ tangerine.resolve GET without caching using Cloudflare x 117 ops/sec ±1.79% (79 runs sampled)
666
+ tangerine.resolve POST with caching using Google x 1,019,993 ops/sec ±0.48% (88 runs sampled)
667
+ tangerine.resolve POST without caching using Google x 106 ops/sec ±4.78% (83 runs sampled)
668
+ tangerine.resolve GET with caching using Google x 1,030,533 ops/sec ±0.28% (89 runs sampled)
669
+ tangerine.resolve GET without caching using Google x 123 ops/sec ±0.59% (83 runs sampled)
670
+ resolver.resolve with caching using Cloudflare x 7,658,904 ops/sec ±0.60% (86 runs sampled)
671
+ resolver.resolve without caching using Cloudflare x 13.28 ops/sec ±201.81% (11 runs sampled)
672
+ Fastest without caching is: tangerine.resolve POST without caching using Cloudflare
673
+ ```
674
+
675
+ **reverse:**
676
+
677
+ ```text
629
678
  Started: reverse
630
- tangerine.reverse GET with caching x 1,002 ops/sec ±195.36% (87 runs sampled)
631
- tangerine.reverse GET without caching x 323 ops/sec ±1.36% (85 runs sampled)
632
- resolver.reverse with caching x 78.33 ops/sec ±196.00% (88 runs sampled)
633
- resolver.reverse without caching x 0.10 ops/sec ±23.12% (5 runs sampled)
634
- dns.promises.reverse with caching x 7,759,048 ops/sec ±1.08% (79 runs sampled)
635
- dns.promises.reverse without caching x 1.25 ops/sec ±163.63% (80 runs sampled)
679
+ tangerine.reverse GET with caching x 991 ops/sec ±195.36% (87 runs sampled)
680
+ tangerine.reverse GET without caching x 129 ops/sec ±0.76% (86 runs sampled)
681
+ resolver.reverse with caching x 0.10 ops/sec ±0.01% (5 runs sampled)
682
+ resolver.reverse without caching x 2.80 ops/sec ±112.00% (74 runs sampled)
683
+ dns.promises.reverse with caching x 7,904,185 ops/sec ±0.60% (85 runs sampled)
684
+ dns.promises.reverse without caching x 8.68 ops/sec ±202.85% (14 runs sampled)
636
685
  Fastest without caching is: tangerine.reverse GET without caching
637
686
  ```
638
687
 
@@ -640,7 +689,7 @@ Fastest without caching is: tangerine.reverse GET without caching
640
689
 
641
690
  **lookup:**
642
691
 
643
- ```
692
+ ```text
644
693
  Started: lookup
645
694
  tangerine.lookup POST with caching using Cloudflare x 330,006 ops/sec ±7.57% (90 runs sampled)
646
695
  tangerine.lookup POST without caching using Cloudflare x 287 ops/sec ±1.96% (84 runs sampled)
@@ -653,7 +702,7 @@ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
653
702
 
654
703
  **resolve:**
655
704
 
656
- ```
705
+ ```text
657
706
  Started: resolve
658
707
  tangerine.resolve POST with caching using Cloudflare x 1,150,690 ops/sec ±0.43% (90 runs sampled)
659
708
  tangerine.resolve POST without caching using Cloudflare x 284 ops/sec ±1.36% (82 runs sampled)
@@ -670,15 +719,60 @@ Fastest without caching is: tangerine.resolve GET without caching using Google
670
719
 
671
720
  **reverse:**
672
721
 
673
- ```
722
+ ```text
674
723
  spawnSync /bin/sh ETIMEDOUT
675
724
  ```
676
725
 
677
- ##### Node.js v24.12.0
726
+ ##### Node.js v22.22.0
678
727
 
679
728
  **lookup:**
680
729
 
730
+ ```text
731
+ Started: lookup
732
+ tangerine.lookup POST with caching using Cloudflare x 1,163 ops/sec ±195.31% (90 runs sampled)
733
+ tangerine.lookup POST without caching using Cloudflare x 54.38 ops/sec ±5.55% (88 runs sampled)
734
+ tangerine.lookup GET with caching using Cloudflare x 313,634 ops/sec ±0.27% (89 runs sampled)
735
+ tangerine.lookup GET without caching using Cloudflare x 55.58 ops/sec ±6.39% (71 runs sampled)
736
+ dns.promises.lookup with caching using Cloudflare x 9,649,217 ops/sec ±0.65% (88 runs sampled)
737
+ dns.promises.lookup without caching using Cloudflare x 3,178 ops/sec ±0.70% (85 runs sampled)
738
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
739
+ ```
740
+
741
+ **resolve:**
742
+
743
+ ```text
744
+ Started: resolve
745
+ tangerine.resolve POST with caching using Cloudflare x 1,186 ops/sec ±195.79% (89 runs sampled)
746
+ tangerine.resolve POST without caching using Cloudflare x 55.82 ops/sec ±5.02% (84 runs sampled)
747
+ tangerine.resolve GET with caching using Cloudflare x 1,099,153 ops/sec ±0.22% (90 runs sampled)
748
+ tangerine.resolve GET without caching using Cloudflare x 59.25 ops/sec ±5.73% (73 runs sampled)
749
+ tangerine.resolve POST with caching using Google x 1,095 ops/sec ±195.81% (88 runs sampled)
750
+ tangerine.resolve POST without caching using Google x 60.23 ops/sec ±10.05% (80 runs sampled)
751
+ tangerine.resolve GET with caching using Google x 1,107,393 ops/sec ±0.67% (90 runs sampled)
752
+ tangerine.resolve GET without caching using Google x 54.10 ops/sec ±10.64% (74 runs sampled)
753
+ resolver.resolve with caching using Cloudflare x 8,395,785 ops/sec ±0.65% (89 runs sampled)
754
+ resolver.resolve without caching using Cloudflare x 67.84 ops/sec ±0.83% (80 runs sampled)
755
+ Fastest without caching is: resolver.resolve without caching using Cloudflare, tangerine.resolve POST without caching using Google
756
+ ```
757
+
758
+ **reverse:**
759
+
760
+ ```text
761
+ Started: reverse
762
+ tangerine.reverse GET with caching x 1,114 ops/sec ±195.34% (89 runs sampled)
763
+ tangerine.reverse GET without caching x 55.88 ops/sec ±4.70% (89 runs sampled)
764
+ resolver.reverse with caching x 8,531,724 ops/sec ±0.82% (84 runs sampled)
765
+ resolver.reverse without caching x 68.04 ops/sec ±0.73% (81 runs sampled)
766
+ dns.promises.reverse with caching x 8,533,071 ops/sec ±0.84% (81 runs sampled)
767
+ dns.promises.reverse without caching x 67.08 ops/sec ±0.82% (79 runs sampled)
768
+ Fastest without caching is: resolver.reverse without caching
681
769
  ```
770
+
771
+ ##### Node.js v24.12.0
772
+
773
+ **lookup:**
774
+
775
+ ```text
682
776
  Started: lookup
683
777
  tangerine.lookup POST with caching using Cloudflare x 1,775 ops/sec ±194.98% (90 runs sampled)
684
778
  tangerine.lookup POST without caching using Cloudflare x 295 ops/sec ±10.41% (81 runs sampled)
@@ -691,7 +785,7 @@ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
691
785
 
692
786
  **resolve:**
693
787
 
694
- ```
788
+ ```text
695
789
  Started: resolve
696
790
  tangerine.resolve POST with caching using Cloudflare x 1,164,729 ops/sec ±0.27% (90 runs sampled)
697
791
  tangerine.resolve POST without caching using Cloudflare x 316 ops/sec ±1.55% (82 runs sampled)
@@ -708,15 +802,105 @@ Fastest without caching is: tangerine.resolve GET without caching using Google
708
802
 
709
803
  **reverse:**
710
804
 
711
- ```
805
+ ```text
712
806
  spawnSync /bin/sh ETIMEDOUT
713
807
  ```
714
808
 
715
- ##### Node.js v25.2.1
809
+ ##### Node.js v24.13.0
810
+
811
+ **lookup:**
812
+
813
+ ```text
814
+ Started: lookup
815
+ tangerine.lookup POST with caching using Cloudflare x 330,489 ops/sec ±1.61% (85 runs sampled)
816
+ tangerine.lookup POST without caching using Cloudflare x 248 ops/sec ±1.98% (80 runs sampled)
817
+ tangerine.lookup GET with caching using Cloudflare x 321,967 ops/sec ±0.26% (90 runs sampled)
818
+ tangerine.lookup GET without caching using Cloudflare x 224 ops/sec ±1.85% (76 runs sampled)
819
+ dns.promises.lookup with caching using Cloudflare x 734 ops/sec ±195.99% (87 runs sampled)
820
+ dns.promises.lookup without caching using Cloudflare x 2,207 ops/sec ±0.51% (85 runs sampled)
821
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
822
+ ```
823
+
824
+ **resolve:**
825
+
826
+ ```text
827
+ Started: resolve
828
+ tangerine.resolve POST with caching using Cloudflare x 1,158,368 ops/sec ±0.28% (90 runs sampled)
829
+ tangerine.resolve POST without caching using Cloudflare x 246 ops/sec ±1.93% (80 runs sampled)
830
+ tangerine.resolve GET with caching using Cloudflare x 1,114,486 ops/sec ±0.29% (88 runs sampled)
831
+ tangerine.resolve GET without caching using Cloudflare x 252 ops/sec ±1.20% (85 runs sampled)
832
+ tangerine.resolve POST with caching using Google x 1,134,382 ops/sec ±0.24% (88 runs sampled)
833
+ tangerine.resolve POST without caching using Google x 168 ops/sec ±36.15% (70 runs sampled)
834
+ tangerine.resolve GET with caching using Google x 1,139,056 ops/sec ±0.61% (90 runs sampled)
835
+ tangerine.resolve GET without caching using Google x 297 ops/sec ±2.73% (75 runs sampled)
836
+ resolver.resolve with caching using Cloudflare x 8,289,380 ops/sec ±7.32% (88 runs sampled)
837
+ resolver.resolve without caching using Cloudflare x 316 ops/sec ±1.92% (79 runs sampled)
838
+ Fastest without caching is: resolver.resolve without caching using Cloudflare
839
+ ```
840
+
841
+ **reverse:**
842
+
843
+ ```text
844
+ Started: reverse
845
+ tangerine.reverse GET with caching x 339,770 ops/sec ±0.42% (90 runs sampled)
846
+ tangerine.reverse GET without caching x 240 ops/sec ±2.18% (77 runs sampled)
847
+ resolver.reverse with caching x 8,523,002 ops/sec ±0.83% (87 runs sampled)
848
+ resolver.reverse without caching x 15.57 ops/sec ±194.42% (31 runs sampled)
849
+ dns.promises.reverse with caching x 8,765,472 ops/sec ±1.03% (82 runs sampled)
850
+ dns.promises.reverse without caching x 5.51 ops/sec ±179.54% (80 runs sampled)
851
+ Fastest without caching is: tangerine.reverse GET without caching
852
+ ```
853
+
854
+ ##### Node.js v24.13.1
716
855
 
717
856
  **lookup:**
718
857
 
858
+ ```text
859
+ Started: lookup
860
+ tangerine.lookup POST with caching using Cloudflare x 328,178 ops/sec ±1.46% (90 runs sampled)
861
+ tangerine.lookup POST without caching using Cloudflare x 263 ops/sec ±1.89% (78 runs sampled)
862
+ tangerine.lookup GET with caching using Cloudflare x 315,952 ops/sec ±0.27% (90 runs sampled)
863
+ tangerine.lookup GET without caching using Cloudflare x 227 ops/sec ±3.20% (78 runs sampled)
864
+ dns.promises.lookup with caching using Cloudflare x 1,047 ops/sec ±195.98% (80 runs sampled)
865
+ dns.promises.lookup without caching using Cloudflare x 2,273 ops/sec ±0.36% (86 runs sampled)
866
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
867
+ ```
868
+
869
+ **resolve:**
870
+
871
+ ```text
872
+ Started: resolve
873
+ tangerine.resolve POST with caching using Cloudflare x 1,146,234 ops/sec ±0.38% (88 runs sampled)
874
+ tangerine.resolve POST without caching using Cloudflare x 228 ops/sec ±1.86% (83 runs sampled)
875
+ tangerine.resolve GET with caching using Cloudflare x 1,121,526 ops/sec ±0.51% (87 runs sampled)
876
+ tangerine.resolve GET without caching using Cloudflare x 293 ops/sec ±1.77% (77 runs sampled)
877
+ tangerine.resolve POST with caching using Google x 1,116,293 ops/sec ±0.94% (87 runs sampled)
878
+ tangerine.resolve POST without caching using Google x 262 ops/sec ±4.45% (83 runs sampled)
879
+ tangerine.resolve GET with caching using Google x 1,127,465 ops/sec ±0.31% (90 runs sampled)
880
+ tangerine.resolve GET without caching using Google x 265 ops/sec ±1.09% (83 runs sampled)
881
+ resolver.resolve with caching using Cloudflare x 8,518,907 ops/sec ±1.01% (86 runs sampled)
882
+ resolver.resolve without caching using Cloudflare x 82.99 ops/sec ±142.66% (36 runs sampled)
883
+ Fastest without caching is: tangerine.resolve GET without caching using Cloudflare
719
884
  ```
885
+
886
+ **reverse:**
887
+
888
+ ```text
889
+ Started: reverse
890
+ tangerine.reverse GET with caching x 337,325 ops/sec ±0.52% (89 runs sampled)
891
+ tangerine.reverse GET without caching x 233 ops/sec ±2.59% (79 runs sampled)
892
+ resolver.reverse with caching x 17.19 ops/sec ±196.00% (86 runs sampled)
893
+ resolver.reverse without caching x 6.84 ops/sec ±154.89% (71 runs sampled)
894
+ dns.promises.reverse with caching x 8,315,699 ops/sec ±1.33% (78 runs sampled)
895
+ dns.promises.reverse without caching x 0.77 ops/sec ±164.54% (37 runs sampled)
896
+ Fastest without caching is: tangerine.reverse GET without caching
897
+ ```
898
+
899
+ ##### Node.js v25.2.1
900
+
901
+ **lookup:**
902
+
903
+ ```text
720
904
  Started: lookup
721
905
  tangerine.lookup POST with caching using Cloudflare x 1,504 ops/sec ±195.19% (89 runs sampled)
722
906
  tangerine.lookup POST without caching using Cloudflare x 118 ops/sec ±2.46% (81 runs sampled)
@@ -729,7 +913,7 @@ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
729
913
 
730
914
  **resolve:**
731
915
 
732
- ```
916
+ ```text
733
917
  Started: resolve
734
918
  tangerine.resolve POST with caching using Cloudflare x 1,200,168 ops/sec ±1.70% (90 runs sampled)
735
919
  tangerine.resolve POST without caching using Cloudflare x 132 ops/sec ±0.46% (88 runs sampled)
@@ -746,7 +930,7 @@ Fastest without caching is: resolver.resolve without caching using Cloudflare
746
930
 
747
931
  **reverse:**
748
932
 
749
- ```
933
+ ```text
750
934
  Started: reverse
751
935
  tangerine.reverse GET with caching x 342,190 ops/sec ±8.40% (90 runs sampled)
752
936
  tangerine.reverse GET without caching x 128 ops/sec ±0.83% (86 runs sampled)
@@ -757,6 +941,276 @@ dns.promises.reverse without caching x 5.11 ops/sec ±189.52% (76 runs sampled)
757
941
  Fastest without caching is: resolver.reverse without caching, dns.promises.reverse without caching
758
942
  ```
759
943
 
944
+ ##### Node.js v25.3.0
945
+
946
+ **lookup:**
947
+
948
+ ```text
949
+ Started: lookup
950
+ tangerine.lookup POST with caching using Cloudflare x 1,178 ops/sec ±195.33% (88 runs sampled)
951
+ tangerine.lookup POST without caching using Cloudflare x 86.96 ops/sec ±1.37% (82 runs sampled)
952
+ tangerine.lookup GET with caching using Cloudflare x 340,510 ops/sec ±0.25% (90 runs sampled)
953
+ tangerine.lookup GET without caching using Cloudflare x 89.52 ops/sec ±1.42% (84 runs sampled)
954
+ dns.promises.lookup with caching using Cloudflare x 1,352 ops/sec ±195.97% (88 runs sampled)
955
+ dns.promises.lookup without caching using Cloudflare x 3,261 ops/sec ±0.86% (83 runs sampled)
956
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
957
+ ```
958
+
959
+ **resolve:**
960
+
961
+ ```text
962
+ Started: resolve
963
+ tangerine.resolve POST with caching using Cloudflare x 1,099 ops/sec ±195.82% (89 runs sampled)
964
+ tangerine.resolve POST without caching using Cloudflare x 88.57 ops/sec ±0.78% (83 runs sampled)
965
+ tangerine.resolve GET with caching using Cloudflare x 1,182,619 ops/sec ±0.51% (91 runs sampled)
966
+ tangerine.resolve GET without caching using Cloudflare x 89.35 ops/sec ±9.03% (88 runs sampled)
967
+ tangerine.resolve POST with caching using Google x 1,174,915 ops/sec ±2.35% (89 runs sampled)
968
+ tangerine.resolve POST without caching using Google x 129 ops/sec ±9.63% (75 runs sampled)
969
+ tangerine.resolve GET with caching using Google x 1,187,141 ops/sec ±0.30% (89 runs sampled)
970
+ tangerine.resolve GET without caching using Google x 195 ops/sec ±0.85% (84 runs sampled)
971
+ resolver.resolve with caching using Cloudflare x 8,288,775 ops/sec ±10.11% (89 runs sampled)
972
+ resolver.resolve without caching using Cloudflare x 105 ops/sec ±0.63% (82 runs sampled)
973
+ Fastest without caching is: tangerine.resolve GET without caching using Google
974
+ ```
975
+
976
+ **reverse:**
977
+
978
+ ```text
979
+ Started: reverse
980
+ tangerine.reverse GET with caching x 1,146 ops/sec ±195.30% (90 runs sampled)
981
+ tangerine.reverse GET without caching x 88.05 ops/sec ±0.92% (83 runs sampled)
982
+ resolver.reverse with caching x 8,812,418 ops/sec ±0.46% (85 runs sampled)
983
+ resolver.reverse without caching x 3.08 ops/sec ±203.97% (19 runs sampled)
984
+ dns.promises.reverse with caching x 8,647,756 ops/sec ±2.62% (87 runs sampled)
985
+ dns.promises.reverse without caching x 0.09 ops/sec ±139.17% (6 runs sampled)
986
+ Fastest without caching is: tangerine.reverse GET without caching
987
+ ```
988
+
989
+ ##### Node.js v25.4.0
990
+
991
+ **lookup:**
992
+
993
+ ```text
994
+ Started: lookup
995
+ tangerine.lookup POST with caching using Cloudflare x 338,506 ops/sec ±2.96% (86 runs sampled)
996
+ tangerine.lookup POST without caching using Cloudflare x 252 ops/sec ±1.53% (83 runs sampled)
997
+ tangerine.lookup GET with caching using Cloudflare x 328,384 ops/sec ±0.24% (89 runs sampled)
998
+ tangerine.lookup GET without caching using Cloudflare x 256 ops/sec ±2.15% (80 runs sampled)
999
+ dns.promises.lookup with caching using Cloudflare x 10,091,995 ops/sec ±0.78% (85 runs sampled)
1000
+ dns.promises.lookup without caching using Cloudflare x 3,114 ops/sec ±0.68% (84 runs sampled)
1001
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
1002
+ ```
1003
+
1004
+ **resolve:**
1005
+
1006
+ ```text
1007
+ Started: resolve
1008
+ tangerine.resolve POST with caching using Cloudflare x 1,178,120 ops/sec ±0.63% (89 runs sampled)
1009
+ tangerine.resolve POST without caching using Cloudflare x 268 ops/sec ±1.42% (84 runs sampled)
1010
+ tangerine.resolve GET with caching using Cloudflare x 1,158,024 ops/sec ±0.37% (88 runs sampled)
1011
+ tangerine.resolve GET without caching using Cloudflare x 263 ops/sec ±1.56% (82 runs sampled)
1012
+ tangerine.resolve POST with caching using Google x 1,126,115 ops/sec ±2.39% (89 runs sampled)
1013
+ tangerine.resolve POST without caching using Google x 203 ops/sec ±1.10% (85 runs sampled)
1014
+ tangerine.resolve GET with caching using Google x 1,124,263 ops/sec ±3.04% (88 runs sampled)
1015
+ tangerine.resolve GET without caching using Google x 231 ops/sec ±0.71% (85 runs sampled)
1016
+ resolver.resolve with caching using Cloudflare x 8,795,845 ops/sec ±0.45% (87 runs sampled)
1017
+ resolver.resolve without caching using Cloudflare x 299 ops/sec ±1.31% (69 runs sampled)
1018
+ Fastest without caching is: resolver.resolve without caching using Cloudflare
1019
+ ```
1020
+
1021
+ **reverse:**
1022
+
1023
+ ```text
1024
+ Started: reverse
1025
+ tangerine.reverse GET with caching x 346,432 ops/sec ±0.67% (87 runs sampled)
1026
+ tangerine.reverse GET without caching x 257 ops/sec ±1.24% (83 runs sampled)
1027
+ resolver.reverse with caching x 8,836,675 ops/sec ±0.85% (83 runs sampled)
1028
+ resolver.reverse without caching x 11.00 ops/sec ±189.21% (38 runs sampled)
1029
+ dns.promises.reverse with caching x 8,483,041 ops/sec ±1.55% (84 runs sampled)
1030
+ dns.promises.reverse without caching x 1.79 ops/sec ±162.11% (82 runs sampled)
1031
+ Fastest without caching is: tangerine.reverse GET without caching
1032
+ ```
1033
+
1034
+ ##### Node.js v25.5.0
1035
+
1036
+ **lookup:**
1037
+
1038
+ ```text
1039
+ Started: lookup
1040
+ tangerine.lookup POST with caching using Cloudflare x 336,308 ops/sec ±3.97% (90 runs sampled)
1041
+ tangerine.lookup POST without caching using Cloudflare x 142 ops/sec ±24.14% (42 runs sampled)
1042
+ tangerine.lookup GET with caching using Cloudflare x 331,518 ops/sec ±0.25% (90 runs sampled)
1043
+ tangerine.lookup GET without caching using Cloudflare x 317 ops/sec ±5.55% (84 runs sampled)
1044
+ dns.promises.lookup with caching using Cloudflare x 10,144,557 ops/sec ±0.80% (85 runs sampled)
1045
+ dns.promises.lookup without caching using Cloudflare x 3,269 ops/sec ±0.69% (84 runs sampled)
1046
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
1047
+ ```
1048
+
1049
+ **resolve:**
1050
+
1051
+ ```text
1052
+ Started: resolve
1053
+ tangerine.resolve POST with caching using Cloudflare x 1,173,581 ops/sec ±0.26% (90 runs sampled)
1054
+ tangerine.resolve POST without caching using Cloudflare x 336 ops/sec ±1.29% (83 runs sampled)
1055
+ tangerine.resolve GET with caching using Cloudflare x 1,154,032 ops/sec ±0.25% (90 runs sampled)
1056
+ tangerine.resolve GET without caching using Cloudflare x 211 ops/sec ±21.96% (60 runs sampled)
1057
+ tangerine.resolve POST with caching using Google x 1,143,112 ops/sec ±2.40% (87 runs sampled)
1058
+ tangerine.resolve POST without caching using Google x 247 ops/sec ±18.82% (74 runs sampled)
1059
+ tangerine.resolve GET with caching using Google x 1,169,919 ops/sec ±0.28% (90 runs sampled)
1060
+ tangerine.resolve GET without caching using Google x 312 ops/sec ±9.26% (78 runs sampled)
1061
+ resolver.resolve with caching using Cloudflare x 8,264,910 ops/sec ±3.31% (82 runs sampled)
1062
+ resolver.resolve without caching using Cloudflare x 322 ops/sec ±40.27% (68 runs sampled)
1063
+ Fastest without caching is: tangerine.resolve POST without caching using Cloudflare, tangerine.resolve GET without caching using Google
1064
+ ```
1065
+
1066
+ **reverse:**
1067
+
1068
+ ```text
1069
+ Started: reverse
1070
+ tangerine.reverse GET with caching x 337,763 ops/sec ±4.41% (90 runs sampled)
1071
+ tangerine.reverse GET without caching x 334 ops/sec ±1.57% (82 runs sampled)
1072
+ resolver.reverse with caching x 8,764,547 ops/sec ±1.05% (84 runs sampled)
1073
+ resolver.reverse without caching x 20.89 ops/sec ±188.69% (22 runs sampled)
1074
+ dns.promises.reverse with caching x 8,832,576 ops/sec ±0.52% (87 runs sampled)
1075
+ dns.promises.reverse without caching x 6.82 ops/sec ±176.67% (70 runs sampled)
1076
+ Fastest without caching is: tangerine.reverse GET without caching
1077
+ ```
1078
+
1079
+ ##### Node.js v25.6.0
1080
+
1081
+ **lookup:**
1082
+
1083
+ ```text
1084
+ Started: lookup
1085
+ tangerine.lookup POST with caching using Cloudflare x 1,022 ops/sec ±195.41% (85 runs sampled)
1086
+ tangerine.lookup POST without caching using Cloudflare x 46.93 ops/sec ±6.02% (78 runs sampled)
1087
+ tangerine.lookup GET with caching using Cloudflare x 329,068 ops/sec ±1.17% (87 runs sampled)
1088
+ tangerine.lookup GET without caching using Cloudflare x 47.00 ops/sec ±5.36% (77 runs sampled)
1089
+ dns.promises.lookup with caching using Cloudflare x 10,120,744 ops/sec ±2.31% (81 runs sampled)
1090
+ dns.promises.lookup without caching using Cloudflare x 3,219 ops/sec ±0.75% (85 runs sampled)
1091
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
1092
+ ```
1093
+
1094
+ **resolve:**
1095
+
1096
+ ```text
1097
+ Started: resolve
1098
+ tangerine.resolve POST with caching using Cloudflare x 1,127 ops/sec ±195.81% (89 runs sampled)
1099
+ tangerine.resolve POST without caching using Cloudflare x 47.64 ops/sec ±5.35% (78 runs sampled)
1100
+ tangerine.resolve GET with caching using Cloudflare x 1,183,153 ops/sec ±0.42% (90 runs sampled)
1101
+ tangerine.resolve GET without caching using Cloudflare x 47.85 ops/sec ±5.73% (79 runs sampled)
1102
+ tangerine.resolve POST with caching using Google x 1,167 ops/sec ±195.80% (90 runs sampled)
1103
+ tangerine.resolve POST without caching using Google x 52.32 ops/sec ±14.47% (67 runs sampled)
1104
+ tangerine.resolve GET with caching using Google x 1,168,373 ops/sec ±2.94% (89 runs sampled)
1105
+ tangerine.resolve GET without caching using Google x 61.96 ops/sec ±11.75% (66 runs sampled)
1106
+ resolver.resolve with caching using Cloudflare x 8,658,908 ops/sec ±0.86% (83 runs sampled)
1107
+ resolver.resolve without caching using Cloudflare x 53.79 ops/sec ±0.56% (84 runs sampled)
1108
+ Fastest without caching is: tangerine.resolve GET without caching using Google
1109
+ ```
1110
+
1111
+ **reverse:**
1112
+
1113
+ ```text
1114
+ Started: reverse
1115
+ tangerine.reverse GET with caching x 1,107 ops/sec ±195.37% (90 runs sampled)
1116
+ tangerine.reverse GET without caching x 47.62 ops/sec ±5.44% (78 runs sampled)
1117
+ resolver.reverse with caching x 8,843,572 ops/sec ±1.73% (86 runs sampled)
1118
+ resolver.reverse without caching x 53.71 ops/sec ±0.41% (84 runs sampled)
1119
+ dns.promises.reverse with caching x 8,869,703 ops/sec ±2.34% (85 runs sampled)
1120
+ dns.promises.reverse without caching x 54.03 ops/sec ±0.34% (85 runs sampled)
1121
+ Fastest without caching is: dns.promises.reverse without caching
1122
+ ```
1123
+
1124
+ ##### Node.js v25.6.1
1125
+
1126
+ **lookup:**
1127
+
1128
+ ```text
1129
+ Started: lookup
1130
+ tangerine.lookup POST with caching using Cloudflare x 1,041 ops/sec ±195.41% (90 runs sampled)
1131
+ tangerine.lookup POST without caching using Cloudflare x 46.90 ops/sec ±7.12% (78 runs sampled)
1132
+ tangerine.lookup GET with caching using Cloudflare x 329,597 ops/sec ±1.03% (89 runs sampled)
1133
+ tangerine.lookup GET without caching using Cloudflare x 47.84 ops/sec ±5.63% (79 runs sampled)
1134
+ dns.promises.lookup with caching using Cloudflare x 10,033,729 ops/sec ±1.66% (86 runs sampled)
1135
+ dns.promises.lookup without caching using Cloudflare x 3,175 ops/sec ±0.61% (87 runs sampled)
1136
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
1137
+ ```
1138
+
1139
+ **resolve:**
1140
+
1141
+ ```text
1142
+ Started: resolve
1143
+ tangerine.resolve POST with caching using Cloudflare x 1,066 ops/sec ±195.81% (86 runs sampled)
1144
+ tangerine.resolve POST without caching using Cloudflare x 48.96 ops/sec ±6.55% (81 runs sampled)
1145
+ tangerine.resolve GET with caching using Cloudflare x 1,133,219 ops/sec ±0.30% (90 runs sampled)
1146
+ tangerine.resolve GET without caching using Cloudflare x 47.66 ops/sec ±5.34% (79 runs sampled)
1147
+ tangerine.resolve POST with caching using Google x 1,132 ops/sec ±195.81% (89 runs sampled)
1148
+ tangerine.resolve POST without caching using Google x 48.55 ops/sec ±13.69% (66 runs sampled)
1149
+ tangerine.resolve GET with caching using Google x 1,130,722 ops/sec ±2.88% (89 runs sampled)
1150
+ tangerine.resolve GET without caching using Google x 53.90 ops/sec ±10.91% (67 runs sampled)
1151
+ resolver.resolve with caching using Cloudflare x 8,443,169 ops/sec ±2.56% (86 runs sampled)
1152
+ resolver.resolve without caching using Cloudflare x 53.86 ops/sec ±0.65% (84 runs sampled)
1153
+ Fastest without caching is: resolver.resolve without caching using Cloudflare
1154
+ ```
1155
+
1156
+ **reverse:**
1157
+
1158
+ ```text
1159
+ Started: reverse
1160
+ tangerine.reverse GET with caching x 1,105 ops/sec ±195.39% (89 runs sampled)
1161
+ tangerine.reverse GET without caching x 48.86 ops/sec ±6.37% (80 runs sampled)
1162
+ resolver.reverse with caching x 8,883,018 ops/sec ±0.41% (86 runs sampled)
1163
+ resolver.reverse without caching x 54.19 ops/sec ±0.53% (85 runs sampled)
1164
+ dns.promises.reverse with caching x 8,752,480 ops/sec ±2.56% (86 runs sampled)
1165
+ dns.promises.reverse without caching x 54.28 ops/sec ±0.35% (85 runs sampled)
1166
+ Fastest without caching is: dns.promises.reverse without caching, resolver.reverse without caching
1167
+ ```
1168
+
1169
+ ##### Node.js v25.7.0
1170
+
1171
+ **lookup:**
1172
+
1173
+ ```text
1174
+ Started: lookup
1175
+ tangerine.lookup POST with caching using Cloudflare x 873 ops/sec ±195.51% (87 runs sampled)
1176
+ tangerine.lookup POST without caching using Cloudflare x 58.82 ops/sec ±7.44% (74 runs sampled)
1177
+ tangerine.lookup GET with caching using Cloudflare x 333,990 ops/sec ±1.19% (86 runs sampled)
1178
+ tangerine.lookup GET without caching using Cloudflare x 53.11 ops/sec ±10.66% (70 runs sampled)
1179
+ dns.promises.lookup with caching using Cloudflare x 626 ops/sec ±195.99% (86 runs sampled)
1180
+ dns.promises.lookup without caching using Cloudflare x 2,470 ops/sec ±0.50% (87 runs sampled)
1181
+ Fastest without caching is: dns.promises.lookup without caching using Cloudflare
1182
+ ```
1183
+
1184
+ **resolve:**
1185
+
1186
+ ```text
1187
+ Started: resolve
1188
+ tangerine.resolve POST with caching using Cloudflare x 1,243 ops/sec ±195.79% (89 runs sampled)
1189
+ tangerine.resolve POST without caching using Cloudflare x 57.08 ops/sec ±11.16% (74 runs sampled)
1190
+ tangerine.resolve GET with caching using Cloudflare x 1,132,703 ops/sec ±0.28% (90 runs sampled)
1191
+ tangerine.resolve GET without caching using Cloudflare x 56.05 ops/sec ±5.64% (80 runs sampled)
1192
+ tangerine.resolve POST with caching using Google x 1,497 ops/sec ±195.73% (88 runs sampled)
1193
+ tangerine.resolve POST without caching using Google x 60.56 ops/sec ±7.75% (77 runs sampled)
1194
+ tangerine.resolve GET with caching using Google x 1,096,216 ops/sec ±2.92% (88 runs sampled)
1195
+ tangerine.resolve GET without caching using Google x 41.16 ops/sec ±24.89% (66 runs sampled)
1196
+ resolver.resolve with caching using Cloudflare x 8,732,718 ops/sec ±2.67% (86 runs sampled)
1197
+ resolver.resolve without caching using Cloudflare x 65.84 ops/sec ±1.17% (78 runs sampled)
1198
+ Fastest without caching is: resolver.resolve without caching using Cloudflare, tangerine.resolve POST without caching using Google
1199
+ ```
1200
+
1201
+ **reverse:**
1202
+
1203
+ ```text
1204
+ Started: reverse
1205
+ tangerine.reverse GET with caching x 1,193 ops/sec ±195.33% (88 runs sampled)
1206
+ tangerine.reverse GET without caching x 56.89 ops/sec ±11.00% (73 runs sampled)
1207
+ resolver.reverse with caching x 8,938,970 ops/sec ±0.65% (88 runs sampled)
1208
+ resolver.reverse without caching x 66.14 ops/sec ±2.95% (78 runs sampled)
1209
+ dns.promises.reverse with caching x 8,783,854 ops/sec ±1.77% (87 runs sampled)
1210
+ dns.promises.reverse without caching x 67.14 ops/sec ±0.80% (79 runs sampled)
1211
+ Fastest without caching is: dns.promises.reverse without caching, resolver.reverse without caching
1212
+ ```
1213
+
760
1214
  </details>
761
1215
 
762
1216
  <!-- BENCHMARK_RESULTS_END -->