Skip to content

build(deps): update devdependency @biomejs/biome to ~2.6.0 - autoclosed - #1159

Closed
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/biomejs-biome-2.x
Closed

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/biomejs-biome-2.x

Conversation

@renovate

@renovate renovate Bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@biomejs/biome (source) ~2.5.7 → ~2.6.0 age adoption passing confidence

Release Notes

biomejs/biome (@​biomejs/biome)

v2.6.2

Compare Source

Minor Changes
  • #​11479 5c60ba8 Thanks @​nhedger! - Added a --git flag to biome init. The flag enables Git VCS integration and sets vcs.useIgnoreFile to true in the generated configuration, even when the command runs outside a Git repository.

  • #​11742 3a1356d Thanks @​Netail! - Added the biome migrate stylelint command. It imports a Stylelint configuration and its ignore settings into your Biome configuration, mapping Stylelint rules to their Biome equivalents. Pass --write to apply the changes, and --include-inspired or --include-nursery to migrate additional rules.

  • #​12318 774b5b5 Thanks @​Netail! - Added the new assist action useGraphqlSortedDefinitions, which sorts the named definitions of a GraphQL document, such as types, type extensions, directives, fragments, and operations.

    Invalid:

    type User {
      id: ID!
    }
    
    enum Role {
      ADMIN
      USER
    }
    
    directive @auth on FIELD_DEFINITION
  • #​6886 3479d15 Thanks @​christymcgrory! - biome rage now shows the resolved files.includes and files.ignoreUnknown configuration.

  • #​11102 0874b7f Thanks @​gameroman! - Added support for useTailwindSortedClasses rule in HTML-ish files.

  • #​10711 40de5a0 Thanks @​soconnor-seeq! - Adds a new resolutionKind option for object-syntax plugin entries.

    This allows shared Biome configs in monorepos to load local Grit plugins from the package that declares them instead of resolving plugin paths from the consuming project.

    {
      "plugins": [
        { "path": "./grit/no-debugger.grit", "resolutionKind": "config" },
        { "path": "local-plugin.grit", "resolutionKind": "project" },
        { "path": "local-plugin.grit" }
      ]
    }

    Use resolutionKind: "config" to resolve the plugin from the configuration file that declares it. Use resolutionKind: "project" to resolve the plugin from the consuming project. When omitted, resolutionKind defaults to project. This only affects plugin resolution; includes still apply to end-user project files as usual.

  • #​11432 4befd08 Thanks @​ematipico! - Added biome inspect config to show resolved configuration values and their origins as human-readable diagnostics, including matching overrides.

    Configuration files can also extend other configurations up to ten levels deep. Repeated references to the same resolved file are ignored with an information diagnostic, while resolving multiple versions of one extended package produces an error.

  • #​11477 ab05554 Thanks @​nhedger! - Added automatic Git VCS integration when running biome init inside a Git repository, including from nested directories and Git worktrees. The generated configuration sets vcs.enabled and vcs.useIgnoreFile to true, with vcs.clientKind set to "git".

  • #​11451 1ac4b09 Thanks @​ematipico! - #### YAML is now supported

    Added support for formatting YAML files, both .yaml and .yml extensions

  • #​11432 4befd08 Thanks @​ematipico! - Configuration files can now recursively extend local files and npm package configurations up to ten levels. Every repeated reference participates in the merge, while resolving multiple versions of one extended package produces an error.

  • #​11713 ac6a640 Thanks @​dyc3! - Added support for Grit range() patterns, addressing #​8454. Plugins can filter syntax nodes by optional start_line, start_column, end_line, and end_column bounds.

    For example, this pattern matches function calls contained entirely on line 2.

    range(start_line=2, end_line=2) as $call where {
        $call <: call_expression()
    }
    
  • #​11244 0628b53 Thanks @​ematipico! - Added the new CLI option --profile-type-inference to the commands lint and check.

    The profiler is designed to track the execution time of internal queries and operations, group them by file, and sort them from the most expensive to the least expensive.

    biome lint --profile-type-inference
    profiler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    
      i Type inference profile (Biome <version>)
    
      src/index.ts
    
        Requests (top 5 of 12 groups; 28 source records; 46 executions)
          1. Promise classification <- nursery/noFloatingPromises
          ...
    
        Queries (top 8 of 25 groups; 61 source records; 94 executions)
          1. Promises / infer_expression_is_promise
          ...
    
        Whole-module inference (top 1 of 1 group; 1 source record; 1 execution)
          1. Import depth limit
          ...
    
      68 files omitted.
    
      ℹ To show all the information, use the --verbose option. The output might be very verbose, so it's advised to analyze a single file.
    
      $ biome lint --profile-type-inference --verbose ./path/to/file.ts
    

    Use --verbose to include detailed timings, attribution, breadth, and implementation references for the top source records in each file.

  • #​12108 4fcb880 Thanks @​ematipico! - Promoted 59 nursery rules to stable groups.

Correctness

Promoted the following rules to the correctness group with error severity. All of them are recommended:

Suspicious

Promoted the following rules to the suspicious group:

Security

Promoted useIframeSandbox to the security group with error severity.

Performance

Promoted the recommended rule useDomNodeTextContent to the performance group with warning severity.

Complexity

Promoted the following rules to the complexity group:

Style

Promoted the following rules to the style group with information severity:

  • useVueConsistentDefinePropsDeclaration

  • useVueNextTickPromise (recommended)

  • noReactNativeLiteralColors

  • useConsistentTestIt

  • useTestHooksInOrder

  • useTestHooksOnTop

  • noPlaywrightEval

  • noPlaywrightElementHandle

  • noPlaywrightWaitForSelector

  • useReduceTypeParameter

  • useNamedCaptureGroup

  • useUnicodeRegex

  • useImportsFirst

  • useVarsOnTop

  • useThisInClassMethods

  • noInlineStyles

  • useDomQuerySelector

  • noTopLevelLiterals

  • #​12206 0f984fb Thanks @​dyc3! - Added the ignoreUsingDeclarations option to noUnusedVariables. When enabled, the rule no longer reports unused variables declared with using or await using, because these declarations clean up their value automatically even when the code never reads it.

    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "options": { "ignoreUsingDeclarations": true }
            }
          }
        }
      }
    }
  • #​12424 6a41490 Thanks @​siketyan! - Removed the javascript.parser.gritMetavariables option. It was intended for internal use only and had no effect on how Biome parses JavaScript and TypeScript files. Biome now reports it as an unknown key and exits with a configuration error, so remove it from your configuration file.

  • #​12055 54870c0 Thanks @​ff1451! - Added the new assist action useGraphqlSortedVariables, which sorts the variable definitions of GraphQL operations.

    Invalid:

    query GetUser($userId: ID!, $includePosts: Boolean = false, $after: String) {
      user(id: $userId) {
        name
      }
    }
  • #​12149 83df808 Thanks @​dyc3! - Added the tailwind.stylesheet option, which points Biome at the CSS file that holds your Tailwind CSS configuration. useTailwindSortedClasses reads the @theme, @utility, and @custom-variant rules in that file and in the local files it imports, so your own theme values, utilities, and variants sort correctly.

    // biome.json
    {
      "tailwind": { "stylesheet": "./src/app.css" }
    }
    /* src/app.css */
    @import "tailwindcss";
    
    @theme {
      --color-brand: #&#8203;3b82f6;
    }
    
    @utility content-auto {
      content-visibility: auto;
    }
    
    @custom-variant theme-midnight (&:where([data-theme="midnight"] *));
  • #​12206 0f984fb Thanks @​dyc3! - Added migration of the ignoreRestSiblings and ignoreUsingDeclarations options of no-unused-vars, @typescript-eslint/no-unused-vars, and unused-imports/no-unused-vars to noUnusedVariables in biome migrate eslint. Options that the ESLint configuration omits are set to ESLint's defaults, so the migrated rule reports the same variables. For example, "no-unused-vars": "error" now migrates ignoreRestSiblings as false.

  • #​11709 32d12cb Thanks @​ematipico! - Added the new command biome inspect file, which returns developer information for the given file.

    biome inspect file path/to/file.ts

    By default, the command returns the CST of the file. The command accepts the following arguments:

    • --ast, which returns the AST of a file.
    • --ir, which returns the formatting IR of a file.
    • --semantic, which returns the semantic model information of a file, if available.
  • #​12221 cb571af Thanks @​dyc3! - The rule noEmptySource now supports Markdown files. It reports files that contain only blank lines and HTML comments. For example, the following file is now reported:

    <!-- TODO -->
  • #​12214 8955b56 Thanks @​dyc3! - The rule noEmptySource now supports YAML files. It reports files with no documents and each document that has no content. For example, the second document in the following code is now reported:

    name: foo
    ---
  • #​12033 8669e53 Thanks @​dyc3! - Added the ignoreElements option to noRedundantRoles. Elements listed in this option are not checked by the rule.

    {
      "linter": {
        "rules": {
          "a11y": {
            "noRedundantRoles": {
              "options": {
                "ignoreElements": ["button"]
              }
            }
          }
        }
      }
    }
  • #​12084 04e3750 Thanks @​dyc3! - The rule noRestrictedElements now supports HTML, Vue, Svelte, and Astro files. For example, with { "elements": { "marquee": "Use CSS animations instead." } }, the following code is now reported:

    <marquee>Breaking news</marquee>
  • #​11408 5a870f2 Thanks @​ematipico! - Added support for distributing named Grit rules, rule presets, and configurations through packages that have a manifest file.

    The field plugins is used to export named Grit plugins, and configs is used to export named configurations.
    Package entries must select a named export: package/rule, package/presets/preset, or package/configs/config. Bare package entries aren't supported.
    Rules consumed from another package are exposed under the consuming package's name, while package authors continue to reference them by their source package inside the manifest.
    Configurations consumed from another package are also exposed under the consuming package's name.

    // biome-manifest.json
    {
      "$schema": "./node_modules/@biomejs/biome/manifest_schema.json",
      "version": 1,
      "plugins": {
        "rules": [
          "@org/shared-rules/noDeprecatedApi",
          "@org/strict-rules/presets/recommended",
          { "useCompanyLogger": "./rules/useCompanyLogger.grit" }
        ],
        "presets": {
          "recommended": [
            "useCompanyLogger",
            "@org/shared-rules/noDeprecatedApi"
          ]
        }
      },
      "configs": [
        "@org/shared-configs/configs/recommended",
        { "base": "./configs/base.json" }
      ]
    }

    The package must publish the manifest and every referenced file, for example, through the files field in package.json.
    Plugin authors can expose their manifest through the biome condition with ./biome-manifest.json as its value.

    // package.json
    {
      "name": "@org/biome-plugin",
      "exports": {
        "biome": "./biome-manifest.json",
        "default": "./index.js"
      },
      "files": ["biome-manifest.json", "rules", "configs"]
    }

    And then, you can load the rules in your biome.json:

    // biome.json
    {
      "plugins": [
        "@org/biome-plugin/useCompanyLogger",
        "@org/biome-plugin/presets/recommended"
      ]
    }

    For more information on how to create a plugin to distribute via npm, check the relative guide.

  • #​12264 90f2eaf Thanks @​dyc3! - Fixed #​11082: glob patterns in the includes option of a plugin are now matched against file paths relative to the directory of the configuration file, the same as files.includes and overrides[].includes.

    Previously, the patterns were matched against the absolute file path, so a pattern such as packages/**/src/** matched no files and the plugin never ran.

    {
      "plugins": [
        { "path": "./my-plugin.grit", "includes": ["packages/**/src/**"] }
      ]
    }

    Patterns that start with **/ keep working. Patterns that contain the absolute path of the project no longer match, and must be rewritten as relative patterns.

  • #​11133 1df00de Thanks @​dlecan! - Added Android (Termux) support to the npm distribution (#​1340). npm install @biomejs/biome now works on Termux through the new @biomejs/cli-android-arm64 and @biomejs/cli-android-x64 packages, which reuse the static musl binaries.

  • #​12132 c5fadc4 Thanks @​ematipico! - Added SCSS support throughout the toolchain. Biome can now format and lint .scss files, and recognizes .module.scss files as CSS Modules.

  • #​10837 754432c Thanks @​JamBalaya56562! - Added support for Google Apps Script (.gs) files.

    They are parsed as JavaScript scripts, so ES module import/export statements are reported as errors (Apps Script has no module system). Common Apps Script service globals (e.g. SpreadsheetApp, DriveApp, Logger) are recognized by noUndeclaredVariables and noGlobalAssign, and the list can be extended through the javascript.globals option.

  • #​11126 fa63050 Thanks @​Punisheroot! - Biome now recognizes files with the .htm extension as HTML.

  • #​12291 6c6619e Thanks @​dyc3! - Changed the dependency that enables the tailwind domain automatically. The domain is now enabled when package.json declares tailwindcss v4 or later, instead of v3 or later, because we are currently targeting Tailwind v4 support. The domain can always be enabled manually.

  • #​11394 de1ad4c Thanks @​ematipico! - #### Markdown is now supported

    Added support for linting and formatting Markdown files. The first version of Biome Markdown parser has 100% compatibility
    against CommonMark.

    Other variants of Markdown, such as GitHub Flavored Markdown (GFM) aren't currently supported; however, we plan to support them soon.

    Formatter and Linter are automatically enabled by default.

    Markdown parser

    The parser comes with an opt-in option to enable frontmatter parsing. When enabled, the first thematic break --- is considered the opening fence of the frontmatter:

    // biome.json
    {
      "markdown": {
        "parser": {
          "frontmatter": true
        }
      }
    }
    ---
    title: Lorem ipsum
    ---

    The parser also comes with an opt-in option called cjkFriendlyEmphasis. When enabled, the parser follows the CommonMark CJK-friendly amendments and recognizes emphasis markers, such as **, placed directly next to Chinese, Japanese, or Korean text. Enable it only when the tool that renders your Markdown supports the same amendments, because the option changes which text Biome formats and lints as emphasis:

    // biome.json
    {
      "markdown": {
        "parser": {
          "cjkFriendlyEmphasis": true
        }
      }
    }

    With the option enabled, the following text is parsed as bold, instead of as literal **:

    **このアスタリスクは強調記号として認識されず、そのまま表示されます。**この文のせいで。
    Markdown formatter

    The formatter has great compatibility with Prettier formatting, more than 90% detected by our infrastructure. The formatter ships with
    a new option called proseWrap, that allows controlling how the Biome formatter should wrap paragraphs.

    For example, when proseWrap is set to always, the formatter will wrap the paragraph to match the configured lineWidth:

    // biome.json
    {
      "markdown": {
        "formatter": {
          "lineWidth": 20,
          "proseWrap": "always"
        }
      }
    }
    Very tiny line width, so
    the paragraph is more
    compact.
    Markdown linter

    The linter ships with a few rules inspired by markdownlint. We plan to ship more rules in the upcoming releases.

    Some rules you can start using already:

    Markdown snippets

    Biome recognizes the code inside fenced code blocks, frontmatter, and HTML blocks as embedded languages, and formats it with
    the formatter of its language and your configuration:

     ```js
    -const   value   =   {a:1,b:2}
    +const value = { a: 1, b: 2 };
     ```

    HTML blocks are formatted only when the HTML formatter is enabled. A block with a syntax error stays as written, and Biome
    still formats the rest of the file.

    The option markdown.formatter.formatEmbeds controls this behavior, and it's enabled by default. Set it to false to keep
    the code of these blocks as written:

    // biome.json
    {
      "markdown": {
        "formatter": {
          "formatEmbeds": false
        }
      }
    }

    The command biome migrate prettier migrates the Prettier option embeddedLanguageFormatting
    to markdown.formatter.formatEmbeds.

    The option markdown.analyzeEmbeds runs the linter and assist actions on the same blocks, with the rules and actions of
    their language, and reports their syntax errors. It's disabled by default, because fenced code blocks usually contain
    examples or partial code:

    // biome.json
    {
      "markdown": {
        "analyzeEmbeds": true
      }
    }
  • #​11634 04c3f5d Thanks @​ematipico! - Added biome inspect plugins to list resolved rules by plugin and importing preset without loading or executing plugin code. Include globs show which files each import targets, and --path selects a target file. Fixed Markdown linter overrides and their configuration inspection.

  • #​12282 a3fa0d6 Thanks @​ff1451! - Added the new assist action useGraphqlSortedArguments, which sorts the arguments of GraphQL fields and directives, and the arguments declared by field and directive definitions.

    Invalid:

    query {
      users(orderBy: NAME, first: 10, after: "cursor") {
        name
      }
    }
  • #​10631 1077238 Thanks @​thibaut-pro! - Added the sortFirst option to the useSortedAttributes action (JSX and HTML). It takes a list of attribute names that are sorted before all other attributes, in the order given, while the remaining attributes keep their usual sort. This is useful to keep attributes such as key first.

    With the following configuration:

    {
      "assist": {
        "actions": {
          "source": {
            "useSortedAttributes": {
              "level": "on",
              "options": { "sortFirst": ["key"] }
            }
          }
        }
      }
    }

    The attributes are reordered so that key comes first:

    // Before
    <div className={styles.investment} key={investment.id} />;
    
    // After
    <div key={investment.id} className={styles.investment} />;
  • #​10424 189b7ba Thanks @​LinusU! - Added the partitionByNewLine option to the useSortedInterfaceMembers assist. When enabled, members separated by a blank line are kept in their own section and sorted only within that section, preserving the logical groupings the author intentionally introduced with empty lines.

Patch Changes
  • #​11953 354f74c Thanks @​Th3S4mur41! - Enhanced the nursery rule useLogicalProperties to check physical CSS values in addition to physical property names.

    The rule recognizes physical values in frame-sizing, anchor-size(), and anchor(), with direction-aware replacements controlled by the existing direction option.

    For justify-content: left and justify-content: right, the rule reports a diagnostic without an automatic replacement because the correct logical alignment depends on the layout axis.

    This is a second part of the rule covering parts of #​9034

  • #​12175 3730b32 Thanks @​dyc3! - Added the nursery rule noDoubleComparison, which reports two comparisons of the same values that can be combined into one. For example, x === y || x < y can be written as x <= y.

  • #​12166 25eb10c Thanks @​dyc3! - Added the new nursery rule noNestedSwitch, which disallows switch statements inside other switch statements.

    switch (n) {
      case 0:
        switch (m) {} // reported
    }
  • #​12170 872ac9f Thanks @​dyc3! - Added the new nursery rule noNestedTemplateLiterals, which disallows template literals written inside other template literals.

    const message = `I have ${color ? `${count} ${color}` : count} apples`;
  • #​12111 f72375f Thanks @​dyc3! - Added the nursery rule noObjectConstructor, which disallows calling the Object constructor without arguments, such as new Object() or Object(). Biome can replace these calls with the object literal {}.

  • #​12254 cb88f07 Thanks @​dyc3! - Added the nursery rule noSvelteClassDirective, which reports Svelte's class: directive. Since Svelte 5.16, the class attribute accepts objects and arrays, and Svelte recommends them over the directive.

    <div class:active={isActive}></div>
  • #​12186 30aa7d2 Thanks @​dyc3! - Added the new nursery rule noUselessDateGetTime, which reports dates converted with .getTime() before being passed to the Date constructor. Passing the date directly, as in new Date(date), already creates a copy.

    const copy = new Date(date.getTime());
  • #​12229 5f8ea6c Thanks @​dyc3! - Added the nursery rule noVueLifecycleAfterAwait, which reports Vue lifecycle hooks, such as onMounted(), that are registered after an await in a component's setup() function. Vue doesn't run these hooks.

    <script>
    import { onMounted } from "vue";
    
    export default {
      async setup() {
        await fetchUser();
        onMounted(() => {});
      },
    };
    </script>
  • #​12077 3dd096f Thanks @​dyc3! - Added the nursery rule noVueRootVIf, which disallows v-if on the only root element of a Vue component template.

    <template>
      <div v-if="visible">Content</div>
    </template>
  • #​12136 b92638b Thanks @​dyc3! - Added the nursery rule noVueShadowNativeEvents, which reports Vue component events named after built-in browser events, such as click or keydown.

    <script setup>
    // Invalid
    const emit = defineEmits(["click"]);
    emit("click");
    </script>
  • #​12135 31a29b6 Thanks @​dyc3! - Added the nursery rule noVueVHtml, which disallows Vue's v-html directive. v-html inserts its value into the page as HTML, so text from users can run code on your page (cross-site scripting, or XSS).

    <template>
      <div v-html="content"></div>
    </template>
  • #​12134 60329af Thanks @​dyc3! - Added the new nursery rule noVueVText, which disallows Vue's v-text directive in favor of text interpolation.

    For example, the following snippet triggers the rule:

    <div v-text="message"></div>
  • #​9817 241b861 Thanks @​dyc3! - Added the new nursery rule noZeroFractions, which disallows numeric literals with redundant zero fractions or dangling dots such as 1.0 and 1.. Biome can now simplify these literals to shorter equivalents.

  • #​12109 b45d426 Thanks @​dyc3! - Added the nursery rule useConsistentJsonFileRead, which enforces a consistent way of reading JSON files before passing them to JSON.parse(). By default, it reports files read as a Buffer; set readAs to "buffer" to report files read as a UTF-8 string instead.

    const packageJson = JSON.parse(await fs.readFile("./package.json"));
  • #​12129 b57f874 Thanks @​dyc3! - Added the new nursery rule useMatchingFunctionName, which requires a named function expression to have the same name as the variable or property it's assigned to.

    // The function name `bar` doesn't match the variable name `foo`.
    const foo = function bar() {};
  • #​12169 0f1ae53 Thanks @​dyc3! - Added the new nursery rule useSimplifiedBooleanReturn, which reports if statements that only return true or false and can be replaced by returning the condition directly.

    function isPositive(value) {
      if (value > 0) {
        return true;
      }
      return false;
    }
  • #​11957 b2db9f2 Thanks @​dyc3! - Added the nursery rule useSvelteKitResolve, which requires internal links and calls to goto(), pushState(), and replaceState() to use paths built with SvelteKit's resolve().

    <a href="/about">About</a>
  • #​12235 b7c1870 Thanks @​dyc3! - Added the nursery rule useSvelteReactiveClasses, which reports Date, Map, Set, URL, and URLSearchParams objects that are modified in Svelte files or exported from Svelte modules. Svelte doesn't detect changes made inside these built-in objects, so the rule suggests the matching classes from svelte/reactivity.

    <script>
      const tags = new Set();
      function addTag(tag) {
        tags.add(tag);
      }
    </script>
  • #​12172 b47674d Thanks @​dyc3! - Added the nursery rule useSvelteShorthandDirective, which enforces the shorthand syntax for Svelte bind:, class:, and style: directives. For example, <input bind:value={value} /> is now reported and can be fixed to <input bind:value />.

  • #​12137 4aeca96 Thanks @​dyc3! - Added the nursery rule useVueMatchingComponentFileName, which requires the name of a Vue component to match its file name. The following component in MyComponent.vue is now reported:

    <script>
    export default {
      name: "MyButton",
    };
    </script>
  • #​12075 de453c0 Thanks @​tionway! - Fixed #​11902: biome migrate --write now successfully migrates empty nested configuration files without introducing an invalid trailing comma.

  • #​12149 83df808 Thanks @​dyc3! - Switched useTailwindSortedClasses to the Tailwind CSS v4 class order. The rule now checks the attributes and functions set in the top-level tailwind configuration, and its own attributes and functions options were removed. Run biome migrate --write to move them to tailwind.attributes, tailwind.mergeFunctions, and tailwind.variantFunctions.

    The rule is now part of the project domain, so enabling it makes Biome scan your project.

  • #​12202 9f1cfde Thanks @​dyc3! - Fixed #​12184: useImportExtensions no longer misses relative imports with .jsx or .tsx extensions when using extensionMappings or forceJsExtensions. The rule reports these imports when the configured replacement resolves to an existing file.

  • #​12081 fd4df34 Thanks @​dyc3! - Added the nursery rule useCapitalizedConstructors, a port of ESLint's new-cap. It reports new expressions whose callee name starts with a lowercase letter, and calls without new whose callee name starts with an uppercase letter.

    const friend = new person();
    const other = Person();
  • #​12061 36aa8c3 Thanks @​dyc3! - Added the nursery rule noExcessiveStatementsPerFunction, a port of ESLint's max-statements. It reports functions that contain more statements than the configured max (default: 10).

  • #​12053 b91a445 Thanks @​dyc3! - Added the nursery rule useVueConsistentEventHyphenation, a port of vue/v-on-event-hyphenation. It enforces a consistent hyphenation style for event names in v-on directives on custom components. By default, hyphenated names are required, so <MyComponent @customEvent="handler" /> is reported.

  • #​12327 2266df2 Thanks @​dyc3! - Improved the performance of the Biome CLI on projects with many files during cleanup.

  • #​12110 cf408d5 Thanks @​dyc3! - Added the recommended nursery rule noOctal, which disallows legacy octal literals such as 071 and decimal literals with leading zeros such as 08. Use 0o71 for explicit octal notation.

  • #​12066 d13d1ba Thanks @​dyc3! - Updated rule source metadata.

  • #​12393 c80f28c Thanks @​ematipico! - Fixed #​12389: the Svelte formatter no longer duplicates binding names when converting redundant bind: initializers to shorthand syntax.

    -<input bind:valuevalue>
    +<input bind:value>
  • #​12325 31a2fb0 Thanks @​dyc3! - Improved the performance of the formatter in files with little or no comments.

  • #​12223 9f246d7 Thanks @​dyc3! - Added the nursery rule noAccidentalBitwiseOperators, which reports the bitwise operators &, |, and |= where the logical operators &&, ||, and ||= were likely intended.

    if (obj & obj.prop) {}
    options = options | {};
  • #​12052 1a6fb41 Thanks @​dyc3! - Added the nursery rule noVueBooleanDefault, which disallows default values for Boolean props in Vue components. Vue already defaults an absent Boolean prop to false.

    <script setup lang="ts">
    withDefaults(defineProps<{ disabled?: boolean }>(), {
      disabled: true,
    });
    </script>
  • #​12177 215288b Thanks @​MustafaKemal0146! - Fixed #​4517: noConfusingVoidType no longer reports void in union types that contain only void and never, such as void | never.

  • #​12461 259a84e Thanks @​ematipico! - Fixed GritQL JSON snippets so patterns such as { $key: $value } can now bind metavariables in object keys and values.

  • #​12185 08cfbd2 Thanks @​dyc3! - Fixed the Tailwind CSS parser splitting dashed utility names. Classes such as drop-shadow!, flex-grow-0, and max-w-screen-lg now keep drop-shadow, flex-grow, and max-w-screen as their utility names.

  • #​12444 ef61338 Thanks @​ematipico! - Fixed the match count reported by biome search. The summary and the matches field of the JSON reporters now count every match, instead of the number of searched files.

  • #​12292 4eadd57 Thanks @​ematipico! - Fixed withastro/compiler-rs#199: processing instructions such as <?xml version="1.0" encoding="UTF-8"?> no longer cause parse errors in Astro and Vue files.

  • #​12152 7a573de Thanks @​dyc3! - Fixed the Tailwind class parser rejecting arbitrary variants whose selector starts with an attribute selector. Classes like [[data-variant=legend]+&]:-mt-1.5 and group-has-[[data-slot=item-description]]/item:self-start now parse correctly.

  • #​12155 851d803 Thanks @​erenbati! - biomejs/biome#11949: Fixed noSelfAssign to detect self-assignments when equivalent property names use dot and bracket notation, including numeric and string-literal keys.

  • #​12112 db7ede6 Thanks @​dyc3! - Added the nursery rule noPromiseExecutorReturn, which disallows returning values from the function passed to new Promise(), because new Promise() ignores them.

    new Promise((resolve) => resolve(1));
  • #​12404 fcd3d74 Thanks @​dyc3! - Fixed #​12374: biome migrate eslint now preserves eqeqeq's null comparison options when configuring noDoubleEquals. Migrating the default ESLint configuration now sets ignoreNull: false, so comparisons such as x == null remain reported.

  • #​12426 0fe3d2b Thanks @​dyc3! - Improved the performance of linting by computing the

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/London)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from wopian October 26, 2026 12:59
@github-actions

Copy link
Copy Markdown
Contributor

JSON:API benchmark changes

Every throughput change is labeled faster/slower; labels do not imply statistical significance. Bold rows mark PR winners per runtime, suite, mode, and scenario, including ties.

Multipliers compare codecs with kitsu-core and clients with kitsu-native (1x), separately for base and PR. A 3x slower library runs at one third the reference rate. Missing reference scores show —.

All rates, winners, multipliers, and changes compare completed operations/s. One operation is one decode, one encode, or one complete decode-encode round trip, including every transport request. @bjornharrtell/json-api uses 2 requests per encode and 3 per decode-encode because HTTP 204 PATCH triggers an automatic GET. Extra requests do not increase the reported rate.

CI run and complete results

bun 1.4.3

Base c761743513c4833fe89648062f348dca741da21b; proposed merge f889dd8bcae7d15d8a7d193ed24648becc1029f2.

Suite / mode / scenario Library Base operations/s PR operations/s Change vs Kitsu base / PR
codec/decode/small-no-relationships kitsu-core 988,405 918,724 7.05% slower 1x / 1x
codec/encode/small-no-relationships kitsu-core 1,348,360 1,504,334 11.57% faster 1x / 1x
codec/decode-encode/small-no-relationships kitsu-core 477,942 476,531 0.30% slower 1x / 1x
codec/decode/small-links-only kitsu-core 739,591 761,538 2.97% faster 1x / 1x
codec/encode/small-links-only kitsu-core 1,441,770 1,394,658 3.27% slower 1x / 1x
codec/decode-encode/small-links-only kitsu-core 407,597 424,041 4.03% faster 1x / 1x
codec/decode/small-relationships kitsu-core 314,303 295,823 5.88% slower 1x / 1x
codec/encode/small-relationships kitsu-core 751,179 852,440 13.48% faster 1x / 1x
codec/decode-encode/small-relationships kitsu-core 187,938 181,702 3.32% slower 1x / 1x
codec/decode/nested-relationships kitsu-core 352,173 339,688 3.55% slower 1x / 1x
codec/encode/nested-relationships kitsu-core 1,763,194 1,681,488 4.63% slower 1x / 1x
codec/decode-encode/nested-relationships kitsu-core 230,839 226,779 1.76% slower 1x / 1x
codec/decode/collection kitsu-core 72,105 70,279 2.53% slower 1x / 1x
codec/encode/collection kitsu-core 122,925 130,659 6.29% faster 1x / 1x
codec/decode-encode/collection kitsu-core 39,691 40,236 1.37% faster 1x / 1x
codec/decode/collection-includes kitsu-core 52,377 52,821 0.85% faster 1x / 1x
codec/encode/collection-includes kitsu-core 58,097 64,220 10.54% faster 1x / 1x
codec/decode-encode/collection-includes kitsu-core 27,202 27,027 0.64% slower 1x / 1x
codec/decode/patch-single kitsu-core 1,696,093 1,608,493 5.16% slower 1x / 1x
codec/encode/patch-single kitsu-core 4,504,038 4,501,800 0.05% slower 1x / 1x
codec/decode-encode/patch-single kitsu-core 824,784 861,424 4.44% faster 1x / 1x
codec/decode/empty-relationships kitsu-core 775,883 771,576 0.56% slower 1x / 1x
codec/encode/empty-relationships kitsu-core 1,003,282 1,084,444 8.09% faster 1x / 1x
codec/decode-encode/empty-relationships kitsu-core 303,912 316,830 4.25% faster 1x / 1x
codec/decode/few-includes kitsu-core 738 729 1.21% slower 1x / 1x
codec/encode/few-includes kitsu-core 950 887 6.55% slower 1x / 1x
codec/decode-encode/few-includes kitsu-core 292 278 4.64% slower 1x / 1x
codec/decode/many-includes kitsu-core 383 383 0.04% faster 1x / 1x
codec/encode/many-includes kitsu-core 759 773 1.92% faster 1x / 1x
codec/decode-encode/many-includes kitsu-core 230 230 0.11% slower 1x / 1x
codec/decode/complex-relationships kitsu-core 58.32 63.06 8.12% faster 1x / 1x
codec/encode/complex-relationships kitsu-core 400 479 19.92% faster 1x / 1x
codec/decode-encode/complex-relationships kitsu-core 43.85 42.73 2.54% slower 1x / 1x
codec/decode/wide-relationship kitsu-core 426 407 4.50% slower 1x / 1x
codec/encode/wide-relationship kitsu-core 4,881 5,559 13.88% faster 1x / 1x
codec/decode-encode/wide-relationship kitsu-core 264 336 27.55% faster 1x / 1x
codec/decode/self-cycle kitsu-core 398,230 383,431 3.72% slower 1x / 1x
codec/encode/self-cycle kitsu-core 1,744,488 1,719,613 1.43% slower 1x / 1x
codec/decode-encode/self-cycle kitsu-core 235,109 223,897 4.77% slower 1x / 1x
codec/decode/mutual-cycle kitsu-core 310,175 308,186 0.64% slower 1x / 1x
codec/encode/mutual-cycle kitsu-core 1,635,392 1,702,045 4.08% faster 1x / 1x
codec/decode-encode/mutual-cycle kitsu-core 188,194 186,662 0.81% slower 1x / 1x
client/decode/small-no-relationships kitsu-native 188,355 203,620 8.10% faster 1x / 1x
client/encode/small-no-relationships kitsu-native 256,927 263,190 2.44% faster 1x / 1x
client/decode-encode/small-no-relationships kitsu-native 101,269 105,102 3.78% faster 1x / 1x
client/decode/small-links-only kitsu-native 183,670 190,177 3.54% faster 1x / 1x
client/encode/small-links-only kitsu-native 261,838 246,073 6.02% slower 1x / 1x
client/decode-encode/small-links-only kitsu-native 100,587 99,877 0.71% slower 1x / 1x
client/decode/small-relationships kitsu-native 108,470 114,196 5.28% faster 1x / 1x
client/encode/small-relationships kitsu-native 167,827 164,209 2.16% slower 1x / 1x
client/decode-encode/small-relationships kitsu-native 57,044 58,940 3.32% faster 1x / 1x
client/decode/nested-relationships kitsu-native 133,241 134,901 1.25% faster 1x / 1x
client/encode/nested-relationships kitsu-native 211,230 237,806 12.58% faster 1x / 1x
client/decode-encode/nested-relationships kitsu-native 72,901 69,781 4.28% slower 1x / 1x
client/decode/collection kitsu-native 15,945 16,075 0.82% faster 1x / 1x
client/encode/collection kitsu-native 31,855 32,683 2.60% faster 1x / 1x
client/decode-encode/collection kitsu-native 9,972 10,526 5.55% faster 1x / 1x
client/decode/collection-includes kitsu-native 16,106 17,347 7.70% faster 1x / 1x
client/encode/collection-includes kitsu-native 15,791 16,912 7.10% faster 1x / 1x
client/decode-encode/collection-includes kitsu-native 7,705 8,332 8.14% faster 1x / 1x
client/decode/patch-single kitsu-native 223,321 224,082 0.34% faster 1x / 1x
client/encode/patch-single kitsu-native 297,765 273,357 8.20% slower 1x / 1x
client/decode-encode/patch-single kitsu-native 106,699 110,485 3.55% faster 1x / 1x
client/decode/empty-relationships kitsu-native 178,606 170,366 4.61% slower 1x / 1x
client/encode/empty-relationships kitsu-native 200,853 219,608 9.34% faster 1x / 1x
client/decode-encode/empty-relationships kitsu-native 81,419 87,283 7.20% faster 1x / 1x
client/decode/few-includes kitsu-native 466 453 2.92% slower 1x / 1x
client/encode/few-includes kitsu-native 456 469 2.79% faster 1x / 1x
client/decode-encode/few-includes kitsu-native 189 176 6.62% slower 1x / 1x
client/decode/many-includes kitsu-native 206 206 0.10% faster 1x / 1x
client/encode/many-includes kitsu-native 372 404 8.74% faster 1x / 1x
client/decode-encode/many-includes kitsu-native 118 119 0.52% faster 1x / 1x
client/decode/complex-relationships kitsu-native 32.78 32.26 1.59% slower 1x / 1x
client/encode/complex-relationships kitsu-native 122 115 5.33% slower 1x / 1x
client/decode-encode/complex-relationships kitsu-native 23.16 22.97 0.85% slower 1x / 1x
client/decode/wide-relationship kitsu-native 212 212 0.08% faster 1x / 1x
client/encode/wide-relationship kitsu-native 930 897 3.59% slower 1x / 1x
client/decode-encode/wide-relationship kitsu-native 160 159 0.44% slower 1x / 1x
client/decode/self-cycle kitsu-native 123,247 125,097 1.50% faster 1x / 1x
client/encode/self-cycle kitsu-native 244,930 251,788 2.80% faster 1x / 1x
client/decode-encode/self-cycle kitsu-native 70,761 72,386 2.30% faster 1x / 1x
client/decode/mutual-cycle kitsu-native 104,956 109,102 3.95% faster 1x / 1x
client/encode/mutual-cycle kitsu-native 215,314 232,105 7.80% faster 1x / 1x
client/decode-encode/mutual-cycle kitsu-native 61,809 64,876 4.96% faster 1x / 1x
client/decode/small-no-relationships kitsu 48,970 51,994 6.18% faster 3.85x slower / 3.92x slower
client/encode/small-no-relationships kitsu 43,925 44,781 1.95% faster 5.85x slower / 5.88x slower
client/decode-encode/small-no-relationships kitsu 23,833 22,925 3.81% slower 4.25x slower / 4.58x slower
client/decode/small-links-only kitsu 49,681 49,308 0.75% slower 3.7x slower / 3.86x slower
client/encode/small-links-only kitsu 42,919 43,395 1.11% faster 6.1x slower / 5.67x slower
client/decode-encode/small-links-only kitsu 19,663 20,314 3.31% faster 5.12x slower / 4.92x slower
client/decode/small-relationships kitsu 37,372 38,020 1.73% faster 2.9x slower / 3x slower
client/encode/small-relationships kitsu 34,246 34,576 0.96% faster 4.9x slower / 4.75x slower
client/decode-encode/small-relationships kitsu 15,906 16,564 4.14% faster 3.59x slower / 3.56x slower
client/decode/nested-relationships kitsu 41,493 39,052 5.88% slower 3.21x slower / 3.45x slower
client/encode/nested-relationships kitsu 38,558 38,185 0.97% slower 5.48x slower / 6.23x slower
client/decode-encode/nested-relationships kitsu 18,154 18,568 2.28% faster 4.02x slower / 3.76x slower
client/decode/collection kitsu 14,385 15,146 5.29% faster 1.11x slower / 1.06x slower
client/encode/collection kitsu 16,776 17,377 3.59% faster 1.9x slower / 1.88x slower
client/decode-encode/collection kitsu 7,470 7,619 2.00% faster 1.33x slower / 1.38x slower
client/decode/collection-includes kitsu 14,387 14,336 0.35% slower 1.12x slower / 1.21x slower
client/encode/collection-includes kitsu 10,822 11,434 5.66% faster 1.46x slower / 1.48x slower
client/decode-encode/collection-includes kitsu 6,075 6,214 2.28% faster 1.27x slower / 1.34x slower
client/decode/patch-single kitsu 51,372 52,722 2.63% faster 4.35x slower / 4.25x slower
client/encode/patch-single kitsu 46,535 45,557 2.10% slower 6.4x slower / 6x slower
client/decode-encode/patch-single kitsu 25,867 24,734 4.38% slower 4.12x slower / 4.47x slower
client/decode/empty-relationships kitsu 42,065 43,438 3.26% faster 4.25x slower / 3.92x slower
client/encode/empty-relationships kitsu 34,038 36,029 5.85% faster 5.9x slower / 6.1x slower
client/decode-encode/empty-relationships kitsu 18,316 20,188 10.22% faster 4.45x slower / 4.32x slower
client/decode/few-includes kitsu 466 473 1.60% faster <1.01x slower / 1.05x faster
client/encode/few-includes kitsu 424 435 2.47% faster 1.08x slower / 1.08x slower
client/decode-encode/few-includes kitsu 176 175 0.95% slower 1.07x slower / 1.01x slower
client/decode/many-includes kitsu 210 209 0.76% slower 1.02x faster / 1.02x faster
client/encode/many-includes kitsu 366 381 4.21% faster 1.02x slower / 1.06x slower
client/decode-encode/many-includes kitsu 111 111 0.27% slower 1.06x slower / 1.07x slower
client/decode/complex-relationships kitsu 32.18 36.21 12.50% faster 1.02x slower / 1.12x faster
client/encode/complex-relationships kitsu 122 97.72 19.62% slower <1.01x faster / 1.18x slower
client/decode-encode/complex-relationships kitsu 24.56 25.21 2.64% faster 1.06x faster / 1.1x faster
client/decode/wide-relationship kitsu 208 215 3.34% faster 1.02x slower / 1.01x faster
client/encode/wide-relationship kitsu 784 868 10.70% faster 1.19x slower / 1.03x slower
client/decode-encode/wide-relationship kitsu 168 162 3.61% slower 1.05x faster / 1.02x faster
client/decode/self-cycle kitsu 41,490 41,046 1.07% slower 2.97x slower / 3.05x slower
client/encode/self-cycle kitsu 41,595 41,953 0.86% faster 5.89x slower / 6x slower
client/decode-encode/self-cycle kitsu 19,065 18,771 1.55% slower 3.71x slower / 3.86x slower
client/decode/mutual-cycle kitsu 37,679 37,806 0.34% faster 2.79x slower / 2.89x slower
client/encode/mutual-cycle kitsu 40,641 40,892 0.62% faster 5.3x slower / 5.68x slower
client/decode-encode/mutual-cycle kitsu 17,971 17,873 0.54% slower 3.44x slower / 3.63x slower

node v26.12.1

Base c761743513c4833fe89648062f348dca741da21b; proposed merge f889dd8bcae7d15d8a7d193ed24648becc1029f2.

Suite / mode / scenario Library Base operations/s PR operations/s Change vs Kitsu base / PR
codec/decode/small-no-relationships kitsu-core 1,652,428 1,634,340 1.09% slower 1x / 1x
codec/encode/small-no-relationships kitsu-core 2,030,428 2,040,580 0.50% faster 1x / 1x
codec/decode-encode/small-no-relationships kitsu-core 810,829 803,910 0.85% slower 1x / 1x
codec/decode/small-links-only kitsu-core 1,325,692 1,329,016 0.25% faster 1x / 1x
codec/encode/small-links-only kitsu-core 2,147,027 2,035,554 5.19% slower 1x / 1x
codec/decode-encode/small-links-only kitsu-core 752,974 741,081 1.58% slower 1x / 1x
codec/decode/small-relationships kitsu-core 459,560 460,079 0.11% faster 1x / 1x
codec/encode/small-relationships kitsu-core 1,152,979 1,171,794 1.63% faster 1x / 1x
codec/decode-encode/small-relationships kitsu-core 300,596 301,555 0.32% faster 1x / 1x
codec/decode/nested-relationships kitsu-core 587,671 591,705 0.69% faster 1x / 1x
codec/encode/nested-relationships kitsu-core 2,054,559 2,140,852 4.20% faster 1x / 1x
codec/decode-encode/nested-relationships kitsu-core 410,775 426,746 3.89% faster 1x / 1x
codec/decode/collection kitsu-core 139,591 139,472 0.09% slower 1x / 1x
codec/encode/collection kitsu-core 260,721 258,823 0.73% slower 1x / 1x
codec/decode-encode/collection kitsu-core 82,513 81,903 0.74% slower 1x / 1x
codec/decode/collection-includes kitsu-core 87,350 86,231 1.28% slower 1x / 1x
codec/encode/collection-includes kitsu-core 108,482 108,217 0.25% slower 1x / 1x
codec/decode-encode/collection-includes kitsu-core 43,129 42,904 0.52% slower 1x / 1x
codec/decode/patch-single kitsu-core 2,771,739 2,853,108 2.94% faster 1x / 1x
codec/encode/patch-single kitsu-core 4,832,018 4,717,291 2.37% slower 1x / 1x
codec/decode-encode/patch-single kitsu-core 1,598,960 1,659,763 3.80% faster 1x / 1x
codec/decode/empty-relationships kitsu-core 1,376,159 1,387,555 0.83% faster 1x / 1x
codec/encode/empty-relationships kitsu-core 1,627,543 1,639,128 0.71% faster 1x / 1x
codec/decode-encode/empty-relationships kitsu-core 652,251 649,132 0.48% slower 1x / 1x
codec/decode/few-includes kitsu-core 943 950 0.73% faster 1x / 1x
codec/encode/few-includes kitsu-core 1,259 1,287 2.21% faster 1x / 1x
codec/decode-encode/few-includes kitsu-core 439 438 0.19% slower 1x / 1x
codec/decode/many-includes kitsu-core 424 422 0.48% slower 1x / 1x
codec/encode/many-includes kitsu-core 1,057 1,014 4.10% slower 1x / 1x
codec/decode-encode/many-includes kitsu-core 242 226 6.65% slower 1x / 1x
codec/decode/complex-relationships kitsu-core 44.93 45.51 1.29% faster 1x / 1x
codec/encode/complex-relationships kitsu-core 295 406 37.52% faster 1x / 1x
codec/decode-encode/complex-relationships kitsu-core 37.94 37.68 0.68% slower 1x / 1x
codec/decode/wide-relationship kitsu-core 414 419 1.22% faster 1x / 1x
codec/encode/wide-relationship kitsu-core 3,897 5,188 33.13% faster 1x / 1x
codec/decode-encode/wide-relationship kitsu-core 365 370 1.26% faster 1x / 1x
codec/decode/self-cycle kitsu-core 474,453 481,256 1.43% faster 1x / 1x
codec/encode/self-cycle kitsu-core 1,922,247 1,939,659 0.91% faster 1x / 1x
codec/decode-encode/self-cycle kitsu-core 346,335 345,432 0.26% slower 1x / 1x
codec/decode/mutual-cycle kitsu-core 446,125 437,488 1.94% slower 1x / 1x
codec/encode/mutual-cycle kitsu-core 2,113,255 2,096,255 0.80% slower 1x / 1x
codec/decode-encode/mutual-cycle kitsu-core 343,479 339,337 1.21% slower 1x / 1x
client/decode/small-no-relationships kitsu-native 202,479 205,611 1.55% faster 1x / 1x
client/encode/small-no-relationships kitsu-native 376,748 374,150 0.69% slower 1x / 1x
client/decode-encode/small-no-relationships kitsu-native 125,539 125,077 0.37% slower 1x / 1x
client/decode/small-links-only kitsu-native 188,013 181,502 3.46% slower 1x / 1x
client/encode/small-links-only kitsu-native 380,882 370,958 2.61% slower 1x / 1x
client/decode-encode/small-links-only kitsu-native 123,963 124,271 0.25% faster 1x / 1x
client/decode/small-relationships kitsu-native 122,211 120,415 1.47% slower 1x / 1x
client/encode/small-relationships kitsu-native 245,271 249,530 1.74% faster 1x / 1x
client/decode-encode/small-relationships kitsu-native 75,214 79,774 6.06% faster 1x / 1x
client/decode/nested-relationships kitsu-native 140,594 140,834 0.17% faster 1x / 1x
client/encode/nested-relationships kitsu-native 361,273 365,733 1.23% faster 1x / 1x
client/decode-encode/nested-relationships kitsu-native 97,540 96,792 0.77% slower 1x / 1x
client/decode/collection kitsu-native 33,548 32,609 2.80% slower 1x / 1x
client/encode/collection kitsu-native 74,690 72,920 2.37% slower 1x / 1x
client/decode-encode/collection kitsu-native 21,905 20,768 5.19% slower 1x / 1x
client/decode/collection-includes kitsu-native 31,613 32,030 1.32% faster 1x / 1x
client/encode/collection-includes kitsu-native 35,306 34,920 1.09% slower 1x / 1x
client/decode-encode/collection-includes kitsu-native 15,166 15,664 3.28% faster 1x / 1x
client/decode/patch-single kitsu-native 241,070 244,307 1.34% faster 1x / 1x
client/encode/patch-single kitsu-native 532,119 531,645 0.09% slower 1x / 1x
client/decode-encode/patch-single kitsu-native 162,153 161,700 0.28% slower 1x / 1x
client/decode/empty-relationships kitsu-native 202,719 203,177 0.23% faster 1x / 1x
client/encode/empty-relationships kitsu-native 340,782 337,796 0.88% slower 1x / 1x
client/decode-encode/empty-relationships kitsu-native 117,270 118,009 0.63% faster 1x / 1x
client/decode/few-includes kitsu-native 537 547 1.73% faster 1x / 1x
client/encode/few-includes kitsu-native 470 471 0.28% faster 1x / 1x
client/decode-encode/few-includes kitsu-native 242 246 1.67% faster 1x / 1x
client/decode/many-includes kitsu-native 225 222 1.37% slower 1x / 1x
client/encode/many-includes kitsu-native 466 455 2.36% slower 1x / 1x
client/decode-encode/many-includes kitsu-native 135 135 0.44% slower 1x / 1x
client/decode/complex-relationships kitsu-native 29.36 29.62 0.90% faster 1x / 1x
client/encode/complex-relationships kitsu-native 131 139 6.16% faster 1x / 1x
client/decode-encode/complex-relationships kitsu-native 22.82 23.52 3.06% faster 1x / 1x
client/decode/wide-relationship kitsu-native 218 215 1.19% slower 1x / 1x
client/encode/wide-relationship kitsu-native 1,298 1,264 2.62% slower 1x / 1x
client/decode-encode/wide-relationship kitsu-native 178 175 1.44% slower 1x / 1x
client/decode/self-cycle kitsu-native 116,793 116,147 0.55% slower 1x / 1x
client/encode/self-cycle kitsu-native 322,117 325,138 0.94% faster 1x / 1x
client/decode-encode/self-cycle kitsu-native 89,550 87,616 2.16% slower 1x / 1x
client/decode/mutual-cycle kitsu-native 115,673 113,884 1.55% slower 1x / 1x
client/encode/mutual-cycle kitsu-native 352,416 369,220 4.77% faster 1x / 1x
client/decode-encode/mutual-cycle kitsu-native 85,456 86,462 1.18% faster 1x / 1x
client/decode/small-no-relationships kitsu 82,276 81,342 1.14% slower 2.46x slower / 2.53x slower
client/encode/small-no-relationships kitsu 76,684 77,586 1.18% faster 4.91x slower / 4.82x slower
client/decode-encode/small-no-relationships kitsu 39,090 40,381 3.30% faster 3.21x slower / 3.1x slower
client/decode/small-links-only kitsu 80,672 80,960 0.36% faster 2.33x slower / 2.24x slower
client/encode/small-links-only kitsu 76,857 77,057 0.26% faster 4.96x slower / 4.81x slower
client/decode-encode/small-links-only kitsu 38,739 38,618 0.31% slower 3.2x slower / 3.22x slower
client/decode/small-relationships kitsu 63,870 63,899 0.04% faster 1.91x slower / 1.88x slower
client/encode/small-relationships kitsu 65,962 66,413 0.68% faster 3.72x slower / 3.76x slower
client/decode-encode/small-relationships kitsu 33,349 33,354 0.01% faster 2.26x slower / 2.39x slower
client/decode/nested-relationships kitsu 72,884 69,373 4.82% slower 1.93x slower / 2.03x slower
client/encode/nested-relationships kitsu 76,270 77,606 1.75% faster 4.74x slower / 4.71x slower
client/decode-encode/nested-relationships kitsu 34,392 36,662 6.60% faster 2.84x slower / 2.64x slower
client/decode/collection kitsu 29,346 29,685 1.15% faster 1.14x slower / 1.1x slower
client/encode/collection kitsu 40,626 41,527 2.22% faster 1.84x slower / 1.76x slower
client/decode-encode/collection kitsu 16,561 17,227 4.03% faster 1.32x slower / 1.21x slower
client/decode/collection-includes kitsu 28,229 27,810 1.48% slower 1.12x slower / 1.15x slower
client/encode/collection-includes kitsu 26,052 25,567 1.86% slower 1.36x slower / 1.37x slower
client/decode-encode/collection-includes kitsu 12,737 12,954 1.71% faster 1.19x slower / 1.21x slower
client/decode/patch-single kitsu 92,817 94,284 1.58% faster 2.6x slower / 2.59x slower
client/encode/patch-single kitsu 88,094 89,772 1.90% faster 6.04x slower / 5.92x slower
client/decode-encode/patch-single kitsu 44,229 45,313 2.45% faster 3.67x slower / 3.57x slower
client/decode/empty-relationships kitsu 85,616 82,952 3.11% slower 2.37x slower / 2.45x slower
client/encode/empty-relationships kitsu 75,803 77,955 2.84% faster 4.5x slower / 4.33x slower
client/decode-encode/empty-relationships kitsu 39,565 39,722 0.40% faster 2.96x slower / 2.97x slower
client/decode/few-includes kitsu 552 555 0.46% faster 1.03x faster / 1.02x faster
client/encode/few-includes kitsu 389 444 14.26% faster 1.21x slower / 1.06x slower
client/decode-encode/few-includes kitsu 230 239 4.12% faster 1.05x slower / 1.03x slower
client/decode/many-includes kitsu 238 228 4.01% slower 1.05x faster / 1.03x faster
client/encode/many-includes kitsu 447 380 15.01% slower 1.04x slower / 1.2x slower
client/decode-encode/many-includes kitsu 147 140 4.32% slower 1.08x faster / 1.04x faster
client/decode/complex-relationships kitsu 31.17 31.4 0.74% faster 1.06x faster / 1.06x faster
client/encode/complex-relationships kitsu 140 144 2.16% faster 1.07x faster / 1.03x faster
client/decode-encode/complex-relationships kitsu 23.61 23.64 0.14% faster 1.03x faster / 1.01x faster
client/decode/wide-relationship kitsu 237 233 1.73% slower 1.09x faster / 1.08x faster
client/encode/wide-relationship kitsu 1,195 1,293 8.16% faster 1.09x slower / 1.02x faster
client/decode-encode/wide-relationship kitsu 188 189 0.26% faster 1.06x faster / 1.08x faster
client/decode/self-cycle kitsu 63,275 64,224 1.50% faster 1.85x slower / 1.81x slower
client/encode/self-cycle kitsu 71,465 71,384 0.11% slower 4.51x slower / 4.55x slower
client/decode-encode/self-cycle kitsu 32,383 32,821 1.35% faster 2.77x slower / 2.67x slower
client/decode/mutual-cycle kitsu 66,674 65,366 1.96% slower 1.73x slower / 1.74x slower
client/encode/mutual-cycle kitsu 79,018 77,667 1.71% slower 4.46x slower / 4.75x slower
client/decode-encode/mutual-cycle kitsu 34,352 34,549 0.57% faster 2.49x slower / 2.5x slower

bun 1.4.3

Base c761743513c4833fe89648062f348dca741da21b; proposed merge f889dd8bcae7d15d8a7d193ed24648becc1029f2.

Competitor changes
Suite / mode / scenario Library Base operations/s PR operations/s Change vs Kitsu base / PR
client/decode/small-no-relationships fetchja 196,155 188,801 3.75% slower 1.04x faster / 1.08x slower
client/encode/small-no-relationships fetchja 224,568 228,921 1.94% faster 1.14x slower / 1.15x slower
client/decode-encode/small-no-relationships fetchja 105,828 105,352 0.45% slower 1.05x faster / <1.01x faster
client/decode/small-links-only fetchja 192,095 189,004 1.61% slower 1.05x faster / 1.01x slower
client/encode/small-links-only fetchja 247,243 240,746 2.63% slower 1.06x slower / 1.02x slower
client/decode-encode/small-links-only fetchja 94,544 94,497 0.05% slower 1.06x slower / 1.06x slower
client/decode/small-relationships fetchja 103,801 103,379 0.41% slower 1.04x slower / 1.1x slower
client/encode/small-relationships fetchja 173,476 163,606 5.69% slower 1.03x faster / <1.01x slower
client/decode-encode/small-relationships fetchja 53,875 54,029 0.29% faster 1.06x slower / 1.09x slower
client/decode/nested-relationships fetchja 102,243 101,754 0.48% slower 1.3x slower / 1.33x slower
client/encode/nested-relationships fetchja 176,315 191,255 8.47% faster 1.2x slower / 1.24x slower
client/decode-encode/nested-relationships fetchja 61,524 61,970 0.73% faster 1.18x slower / 1.13x slower
client/decode/collection fetchja 28,996 28,833 0.56% slower 1.82x faster / 1.79x faster
client/encode/collection fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/collection-includes fetchja 29,113 28,337 2.66% slower 1.81x faster / 1.63x faster
client/encode/collection-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/patch-single fetchja 191,228 197,094 3.07% faster 1.17x slower / 1.14x slower
client/encode/patch-single fetchja 233,385 240,976 3.25% faster 1.28x slower / 1.13x slower
client/decode-encode/patch-single fetchja 97,162 95,333 1.88% slower 1.1x slower / 1.16x slower
client/decode/empty-relationships fetchja 183,108 186,747 1.99% faster 1.03x faster / 1.1x faster
client/encode/empty-relationships fetchja 207,198 206,343 0.41% slower 1.03x faster / 1.06x slower
client/decode-encode/empty-relationships fetchja 85,550 84,259 1.51% slower 1.05x faster / 1.04x slower
client/decode/few-includes fetchja 414 406 2.03% slower 1.13x slower / 1.12x slower
client/encode/few-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/few-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/many-includes fetchja 169 160 5.31% slower 1.21x slower / 1.28x slower
client/encode/many-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/many-includes fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/complex-relationships fetchja 27.45 27.06 1.40% slower 1.19x slower / 1.19x slower
client/encode/complex-relationships fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/complex-relationships fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/wide-relationship fetchja 162 157 3.42% slower 1.3x slower / 1.35x slower
client/encode/wide-relationship fetchja unsupported unsupported unsupported / unsupported — / —
client/decode-encode/wide-relationship fetchja unsupported unsupported unsupported / unsupported — / —
client/decode/self-cycle fetchja 110,081 108,620 1.33% slower 1.12x slower / 1.15x slower
client/encode/self-cycle fetchja 203,404 204,978 0.77% faster 1.2x slower / 1.23x slower
client/decode-encode/self-cycle fetchja 59,668 60,260 0.99% faster 1.19x slower / 1.2x slower
client/decode/mutual-cycle fetchja 94,424 94,945 0.55% faster 1.11x slower / 1.15x slower
client/encode/mutual-cycle fetchja 189,374 190,387 0.54% faster 1.14x slower / 1.22x slower
client/decode-encode/mutual-cycle fetchja 58,103 57,153 1.63% slower 1.06x slower / 1.14x slower
codec/decode/small-no-relationships devour 1,486,058 1,450,379 2.40% slower 1.5x faster / 1.58x faster
codec/encode/small-no-relationships devour 2,781,836 2,980,262 7.13% faster 2.06x faster / 1.98x faster
codec/decode-encode/small-no-relationships devour 798,483 792,734 0.72% slower 1.67x faster / 1.66x faster
client/decode/small-no-relationships devour 49,367 49,610 0.49% faster 3.82x slower / 4.1x slower
client/encode/small-no-relationships devour 42,481 42,455 0.06% slower 6.05x slower / 6.2x slower
client/decode-encode/small-no-relationships devour 20,976 21,519 2.59% faster 4.83x slower / 4.88x slower
codec/decode/small-links-only devour 956,886 946,781 1.06% slower 1.29x faster / 1.24x faster
codec/encode/small-links-only devour 1,768,478 1,650,580 6.67% slower 1.23x faster / 1.18x faster
codec/decode-encode/small-links-only devour 509,945 507,480 0.48% slower 1.25x faster / 1.2x faster
client/decode/small-links-only devour 47,605 46,818 1.65% slower 3.86x slower / 4.06x slower
client/encode/small-links-only devour 43,004 41,130 4.36% slower 6.09x slower / 5.98x slower
client/decode-encode/small-links-only devour 19,187 19,713 2.74% faster 5.24x slower / 5.07x slower
codec/decode/small-relationships devour 262,565 273,016 3.98% faster 1.2x slower / 1.08x slower
codec/encode/small-relationships devour 1,124,012 1,088,695 3.14% slower 1.5x faster / 1.28x faster
codec/decode-encode/small-relationships devour 174,784 180,472 3.25% faster 1.08x slower / 1.01x slower
client/decode/small-relationships devour 33,030 32,611 1.27% slower 3.28x slower / 3.5x slower
client/encode/small-relationships devour 33,623 34,384 2.26% faster 4.99x slower / 4.78x slower
client/decode-encode/small-relationships devour 15,702 15,826 0.79% faster 3.63x slower / 3.72x slower
codec/decode/nested-relationships devour 309,976 318,070 2.61% faster 1.14x slower / 1.07x slower
codec/encode/nested-relationships devour 1,369,395 1,392,159 1.66% faster 1.29x slower / 1.21x slower
codec/decode-encode/nested-relationships devour 219,615 225,749 2.79% faster 1.05x slower / <1.01x slower
client/decode/nested-relationships devour 36,086 35,377 1.97% slower 3.69x slower / 3.81x slower
client/encode/nested-relationships devour 36,388 35,449 2.58% slower 5.8x slower / 6.71x slower
client/decode-encode/nested-relationships devour 17,853 17,323 2.97% slower 4.08x slower / 4.03x slower
codec/decode/collection devour 82,192 83,532 1.63% faster 1.14x faster / 1.19x faster
codec/encode/collection devour 130,962 126,543 3.37% slower 1.07x faster / 1.03x slower
codec/decode-encode/collection devour 44,232 43,471 1.72% slower 1.11x faster / 1.08x faster
client/decode/collection devour 15,142 15,273 0.87% faster 1.05x slower / 1.05x slower
client/encode/collection devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection devour unsupported unsupported unsupported / unsupported — / —
codec/decode/collection-includes devour 110,323 108,558 1.60% slower 2.11x faster / 2.06x faster
codec/encode/collection-includes devour 210,151 194,056 7.66% slower 3.62x faster / 3.02x faster
codec/decode-encode/collection-includes devour 62,121 61,842 0.45% slower 2.28x faster / 2.29x faster
client/decode/collection-includes devour 16,459 16,568 0.66% faster 1.02x faster / 1.05x slower
client/encode/collection-includes devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection-includes devour unsupported unsupported unsupported / unsupported — / —
codec/decode/patch-single devour 1,242,069 1,345,328 8.31% faster 1.37x slower / 1.2x slower
codec/encode/patch-single devour 3,909,600 3,607,098 7.74% slower 1.15x slower / 1.25x slower
codec/decode-encode/patch-single devour 884,981 892,065 0.80% faster 1.07x faster / 1.04x faster
client/decode/patch-single devour 47,295 47,555 0.55% faster 4.72x slower / 4.71x slower
client/encode/patch-single devour 42,525 43,045 1.22% faster 7x slower / 6.35x slower
client/decode-encode/patch-single devour 20,121 20,446 1.61% faster 5.3x slower / 5.4x slower
codec/decode/empty-relationships devour 684,252 664,885 2.83% slower 1.13x slower / 1.16x slower
codec/encode/empty-relationships devour 1,207,636 1,238,159 2.53% faster 1.2x faster / 1.14x faster
codec/decode-encode/empty-relationships devour 348,979 348,576 0.12% slower 1.15x faster / 1.1x faster
client/decode/empty-relationships devour 42,742 42,538 0.48% slower 4.18x slower / 4.01x slower
client/encode/empty-relationships devour 36,862 36,803 0.16% slower 5.45x slower / 5.97x slower
client/decode-encode/empty-relationships devour 17,388 17,962 3.30% faster 4.68x slower / 4.86x slower
codec/decode/few-includes devour 430 429 0.28% slower 1.72x slower / 1.7x slower
codec/encode/few-includes devour 1,345 1,319 1.93% slower 1.42x faster / 1.49x faster
codec/decode-encode/few-includes devour 280 275 1.80% slower 1.04x slower / 1.01x slower
client/decode/few-includes devour 323 328 1.33% faster 1.44x slower / 1.38x slower
client/encode/few-includes devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/few-includes devour unsupported unsupported unsupported / unsupported — / —
codec/decode/many-includes devour 5.43 5.16 4.99% slower 70.48x slower / 74.22x slower
codec/encode/many-includes devour 1,310 1,409 7.54% faster 1.73x faster / 1.82x faster
codec/decode-encode/many-includes devour 5.08 5.12 0.76% faster 45.36x slower / 44.97x slower
client/decode/many-includes devour 8.06 7.95 1.29% slower 25.51x slower / 25.87x slower
client/encode/many-includes devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/many-includes devour unsupported unsupported unsupported / unsupported — / —
codec/decode/complex-relationships devour timeout timeout timeout / timeout — / —
codec/encode/complex-relationships devour 877 896 2.18% faster 2.19x faster / 1.87x faster
codec/decode-encode/complex-relationships devour timeout timeout timeout / timeout — / —
client/decode/complex-relationships devour timeout timeout timeout / timeout — / —
client/encode/complex-relationships devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/complex-relationships devour unsupported unsupported unsupported / unsupported — / —
codec/decode/wide-relationship devour 3.94 3.86 1.87% slower 108x slower / 105x slower
codec/encode/wide-relationship devour 22,864 20,463 10.50% slower 4.68x faster / 3.68x faster
codec/decode-encode/wide-relationship devour 4.12 3.95 3.97% slower 64x slower / 85.01x slower
client/decode/wide-relationship devour 5.23 5.29 1.30% faster 40.56x slower / 40.07x slower
client/encode/wide-relationship devour unsupported unsupported unsupported / unsupported — / —
client/decode-encode/wide-relationship devour unsupported unsupported unsupported / unsupported — / —
codec/decode/self-cycle devour 263,130 250,120 4.94% slower 1.51x slower / 1.53x slower
codec/encode/self-cycle devour 1,239,430 1,289,754 4.06% faster 1.41x slower / 1.33x slower
codec/decode-encode/self-cycle devour 192,900 195,014 1.10% faster 1.22x slower / 1.15x slower
client/decode/self-cycle devour 34,111 34,176 0.19% faster 3.61x slower / 3.66x slower
client/encode/self-cycle devour 37,225 37,333 0.29% faster 6.58x slower / 6.74x slower
client/decode-encode/self-cycle devour 16,490 16,089 2.43% slower 4.29x slower / 4.5x slower
codec/decode/mutual-cycle devour 223,165 221,728 0.64% slower 1.39x slower / 1.39x slower
codec/encode/mutual-cycle devour 1,205,295 1,195,713 0.80% slower 1.36x slower / 1.42x slower
codec/decode-encode/mutual-cycle devour 163,749 168,051 2.63% faster 1.15x slower / 1.11x slower
client/decode/mutual-cycle devour 33,172 32,818 1.07% slower 3.16x slower / 3.32x slower
client/encode/mutual-cycle devour 35,735 35,452 0.79% slower 6.03x slower / 6.55x slower
client/decode-encode/mutual-cycle devour 14,351 13,856 3.45% slower 4.31x slower / 4.68x slower
client/decode/small-no-relationships @bjornharrtell/json-api 210,423 214,169 1.78% faster 1.12x faster / 1.05x faster
client/encode/small-no-relationships @bjornharrtell/json-api 105,286 106,668 1.31% faster 2.44x slower / 2.47x slower
client/decode-encode/small-no-relationships @bjornharrtell/json-api 65,148 68,443 5.06% faster 1.55x slower / 1.54x slower
client/decode/small-links-only @bjornharrtell/json-api 198,066 199,285 0.62% faster 1.08x faster / 1.05x faster
client/encode/small-links-only @bjornharrtell/json-api 97,216 96,093 1.16% slower 2.69x slower / 2.56x slower
client/decode-encode/small-links-only @bjornharrtell/json-api 63,211 62,530 1.08% slower 1.59x slower / 1.6x slower
client/decode/small-relationships @bjornharrtell/json-api 115,106 113,595 1.31% slower 1.06x faster / 1.01x slower
client/encode/small-relationships @bjornharrtell/json-api 66,212 65,187 1.55% slower 2.53x slower / 2.52x slower
client/decode-encode/small-relationships @bjornharrtell/json-api 40,321 39,508 2.02% slower 1.41x slower / 1.49x slower
client/decode/nested-relationships @bjornharrtell/json-api 123,589 124,438 0.69% faster 1.08x slower / 1.08x slower
client/encode/nested-relationships @bjornharrtell/json-api 68,160 72,367 6.17% faster 3.1x slower / 3.29x slower
client/decode-encode/nested-relationships @bjornharrtell/json-api 44,616 44,113 1.13% slower 1.63x slower / 1.58x slower
client/decode/collection @bjornharrtell/json-api 28,100 29,738 5.83% faster 1.76x faster / 1.85x faster
client/encode/collection @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/collection-includes @bjornharrtell/json-api 32,969 30,696 6.89% slower 2.05x faster / 1.77x faster
client/encode/collection-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/collection-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/patch-single @bjornharrtell/json-api 194,910 193,350 0.80% slower 1.15x slower / 1.16x slower
client/encode/patch-single @bjornharrtell/json-api 96,980 95,641 1.38% slower 3.07x slower / 2.86x slower
client/decode-encode/patch-single @bjornharrtell/json-api 62,632 61,490 1.82% slower 1.7x slower / 1.8x slower
client/decode/empty-relationships @bjornharrtell/json-api incorrect incorrect incorrect / incorrect — / —
client/encode/empty-relationships @bjornharrtell/json-api 93,943 92,947 1.06% slower 2.14x slower / 2.36x slower
client/decode-encode/empty-relationships @bjornharrtell/json-api incorrect incorrect incorrect / incorrect — / —
client/decode/few-includes @bjornharrtell/json-api 403 431 7.00% faster 1.16x slower / 1.05x slower
client/encode/few-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/few-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/many-includes @bjornharrtell/json-api 165 158 4.31% slower 1.24x slower / 1.3x slower
client/encode/many-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/many-includes @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/complex-relationships @bjornharrtell/json-api 24.21 24.06 0.62% slower 1.35x slower / 1.34x slower
client/encode/complex-relationships @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/complex-relationships @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/wide-relationship @bjornharrtell/json-api 144 142 1.66% slower 1.47x slower / 1.5x slower
client/encode/wide-relationship @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode-encode/wide-relationship @bjornharrtell/json-api unsupported unsupported unsupported / unsupported — / —
client/decode/self-cycle @bjornharrtell/json-api 112,633 112,260 0.33% slower 1.09x slower / 1.11x slower
client/encode/self-cycle @bjornharrtell/json-api 68,613 68,449 0.24% slower 3.57x slower / 3.68x slower
client/decode-encode/self-cycle @bjornharrtell/json-api 40,090 39,508 1.45% slower 1.77x slower / 1.83x slower
client/decode/mutual-cycle @bjornharrtell/json-api 96,787 97,869 1.12% faster 1.08x slower / 1.11x slower
client/encode/mutual-cycle @bjornharrtell/json-api 64,005 63,396 0.95% slower 3.36x slower / 3.66x slower
client/decode-encode/mutual-cycle @bjornharrtell/json-api 36,752 35,876 2.38% slower 1.68x slower / 1.81x slower
codec/decode/small-no-relationships yayson 789,146 787,355 0.23% slower 1.25x slower / 1.17x slower
codec/encode/small-no-relationships yayson 1,520,821 1,442,183 5.17% slower 1.13x faster / 1.04x slower
codec/decode-encode/small-no-relationships yayson 482,464 482,589 0.03% faster 1.01x faster / 1.01x faster
codec/decode/small-links-only yayson 518,387 519,013 0.12% faster 1.43x slower / 1.47x slower
codec/encode/small-links-only yayson 1,285,137 1,232,396 4.10% slower 1.12x slower / 1.13x slower
codec/decode-encode/small-links-only yayson 327,514 325,561 0.60% slower 1.24x slower / 1.3x slower
codec/decode/small-relationships yayson 186,326 187,865 0.83% faster 1.69x slower / 1.57x slower
codec/encode/small-relationships yayson 686,681 672,691 2.04% slower 1.09x slower / 1.27x slower
codec/decode-encode/small-relationships yayson 116,863 121,241 3.75% faster 1.61x slower / 1.5x slower
codec/decode/nested-relationships yayson 275,019 279,805 1.74% faster 1.28x slower / 1.21x slower
codec/encode/nested-relationships yayson 820,810 896,473 9.22% faster 2.15x slower / 1.88x slower
codec/decode-encode/nested-relationships yayson 182,440 181,264 0.64% slower 1.27x slower / 1.25x slower
codec/decode/collection yayson 66,259 67,084 1.25% faster 1.09x slower / 1.05x slower
codec/encode/collection yayson 193,645 183,116 5.44% slower 1.58x faster / 1.4x faster
codec/decode-encode/collection yayson 42,916 41,951 2.25% slower 1.08x faster / 1.04x faster
codec/decode/collection-includes yayson 95,336 102,148 7.15% faster 1.82x faster / 1.93x faster
codec/encode/collection-includes yayson 239,835 223,586 6.78% slower 4.13x faster / 3.48x faster
codec/decode-encode/collection-includes yayson 58,516 57,077 2.46% slower 2.15x faster / 2.11x faster
codec/decode/patch-single yayson 812,613 852,853 4.95% faster 2.09x slower / 1.89x slower
codec/encode/patch-single yayson 1,709,922 1,596,734 6.62% slower 2.63x slower / 2.82x slower
codec/decode-encode/patch-single yayson 495,037 501,623 1.33% faster 1.67x slower / 1.72x slower
codec/decode/empty-relationships yayson 544,963 548,671 0.68% faster 1.42x slower / 1.41x slower
codec/encode/empty-relationships yayson 836,697 820,623 1.92% slower 1.2x slower / 1.32x slower
codec/decode-encode/empty-relationships yayson 287,756 287,249 0.18% slower 1.06x slower / 1.1x slower
codec/decode/few-includes yayson 556 550 1.15% slower 1.33x slower / 1.33x slower
codec/encode/few-includes yayson 869 864 0.49% slower 1.09x slower / 1.03x slower
codec/decode-encode/few-includes yayson 214 207 3.66% slower 1.36x slower / 1.35x slower
codec/decode/many-includes yayson 30.42 29.4 3.34% slower 12.59x slower / 13.03x slower
codec/encode/many-includes yayson 852 846 0.64% slower 1.12x faster / 1.09x faster
codec/decode-encode/many-includes yayson 29.69 29.6 0.31% slower 7.76x slower / 7.78x slower
codec/decode/complex-relationships yayson 0.62 0.6 2.49% slower 94.63x slower / 105x slower
codec/encode/complex-relationships yayson 625 622 0.44% slower 1.56x faster / 1.3x faster
codec/decode-encode/complex-relationships yayson 0.62 0.55 11.17% slower 71.06x slower / 77.96x slower
codec/decode/wide-relationship yayson 16.89 17.52 3.73% faster 25.22x slower / 23.22x slower
codec/encode/wide-relationship yayson 11,556 19,389 67.79% faster 2.37x faster / 3.49x faster
codec/decode-encode/wide-relationship yayson 16.8 17.46 3.95% faster 15.69x slower / 19.24x slower
codec/decode/self-cycle yayson 228,921 230,551 0.71% faster 1.74x slower / 1.66x slower
codec/encode/self-cycle yayson 734,115 740,611 0.88% faster 2.38x slower / 2.32x slower
codec/decode-encode/self-cycle yayson 164,106 161,852 1.37% slower 1.43x slower / 1.38x slower
codec/decode/mutual-cycle yayson 192,053 195,447 1.77% faster 1.62x slower / 1.58x slower
codec/encode/mutual-cycle yayson 633,253 672,306 6.17% faster 2.58x slower / 2.53x slower
codec/decode-encode/mutual-cycle yayson 122,458 128,015 4.54% faster 1.54x slower / 1.46x slower
codec/decode/small-no-relationships jsona 1,121,122 1,114,835 0.56% slower 1.13x faster / 1.21x faster
codec/encode/small-no-relationships jsona 2,018,454 2,054,587 1.79% faster 1.5x faster / 1.37x faster
codec/decode-encode/small-no-relationships jsona 655,387 664,438 1.38% faster 1.37x faster / 1.39x faster
codec/decode/small-links-only jsona 1,077,439 1,072,077 0.50% slower 1.46x faster / 1.41x faster
codec/encode/small-links-only jsona 1,830,956 1,763,541 3.68% slower 1.27x faster / 1.26x faster
codec/decode-encode/small-links-only jsona 493,034 507,824 3.00% faster 1.21x faster / 1.2x faster
codec/decode/small-relationships jsona 272,546 278,249 2.09% faster 1.15x slower / 1.06x slower
codec/encode/small-relationships jsona 785,625 738,098 6.05% slower 1.05x faster / 1.15x slower
codec/decode-encode/small-relationships jsona 181,475 175,586 3.25% slower 1.04x slower / 1.03x slower
codec/decode/nested-relationships jsona 351,903 367,324 4.38% faster <1.01x slower / 1.08x faster
codec/encode/nested-relationships jsona 1,036,628 1,094,215 5.56% faster 1.7x slower / 1.54x slower
codec/decode-encode/nested-relationships jsona 203,645 206,247 1.28% faster 1.13x slower / 1.1x slower
codec/decode/collection jsona 249,896 242,500 2.96% slower 3.47x faster / 3.45x faster
codec/encode/collection jsona 456,442 466,128 2.12% faster 3.71x faster / 3.57x faster
codec/decode-encode/collection jsona 104,388 112,707 7.97% faster 2.63x faster / 2.8x faster
codec/decode/collection-includes jsona 126,430 127,434 0.79% faster 2.41x faster / 2.41x faster
codec/encode/collection-includes jsona 233,842 226,529 3.13% slower 4.02x faster / 3.53x faster
codec/decode-encode/collection-includes jsona 71,182 71,240 0.08% faster 2.62x faster / 2.64x faster
codec/decode/patch-single jsona 1,285,031 1,307,079 1.72% faster 1.32x slower / 1.23x slower
codec/encode/patch-single jsona 2,123,352 2,323,981 9.45% faster 2.12x slower / 1.94x slower
codec/decode-encode/patch-single jsona 668,369 675,329 1.04% faster 1.23x slower / 1.28x slower
codec/decode/empty-relationships jsona 816,647 769,847 5.73% slower 1.05x faster / <1.01x slower
codec/encode/empty-relationships jsona 1,209,054 1,145,431 5.26% slower 1.21x faster / 1.06x faster
codec/decode-encode/empty-relationships jsona 372,848 363,807 2.42% slower 1.23x faster / 1.15x faster
codec/decode/few-includes jsona 529 533 0.73% faster 1.4x slower / 1.37x slower
codec/encode/few-includes jsona 828 793 4.20% slower 1.15x slower / 1.12x slower
codec/decode-encode/few-includes jsona 260 274 5.42% faster 1.12x slower / 1.02x slower
codec/decode/many-includes jsona 177 175 1.25% slower 2.17x slower / 2.2x slower
codec/encode/many-includes jsona 870 864 0.68% slower 1.15x faster / 1.12x faster
codec/decode-encode/many-includes jsona 123 124 0.78% faster 1.88x slower / 1.86x slower
codec/decode/complex-relationships jsona 22.56 21.89 2.95% slower 2.59x slower / 2.88x slower
codec/encode/complex-relationships jsona 362 388 7.06% faster 1.1x slower / 1.24x slower
codec/decode-encode/complex-relationships jsona 19.61 19.6 0.05% slower 2.24x slower / 2.18x slower
codec/decode/wide-relationship jsona 161 159 1.24% slower 2.65x slower / 2.57x slower
codec/encode/wide-relationship jsona 3,593 3,906 8.73% faster 1.36x slower / 1.42x slower
codec/decode-encode/wide-relationship jsona 128 133 3.81% faster 2.06x slower / 2.53x slower
codec/decode/self-cycle jsona 306,375 311,626 1.71% faster 1.3x slower / 1.23x slower
codec/encode/self-cycle jsona 964,491 946,103 1.91% slower 1.81x slower / 1.82x slower
codec/decode-encode/self-cycle jsona 186,533 183,495 1.63% slower 1.26x slower / 1.22x slower
codec/decode/mutual-cycle jsona 224,669 224,401 0.12% slower 1.38x slower / 1.37x slower
codec/encode/mutual-cycle jsona 768,013 825,102 7.43% faster 2.13x slower / 2.06x slower
codec/decode-encode/mutual-cycle jsona 165,102 159,527 3.38% slower 1.14x slower / 1.17x slower
codec/decode/small-no-relationships ts-japi unsupported unsupported unsupported / unsupported — / —
codec/encode/small-no-relationships ts-japi 803,965 819,343 1.91% faster 1.68x slower / 1.84x slower
codec/decode-encode/small-no-relationships ts-japi unsupported unsupported unsupported / unsupported — / —
codec/decode/small-links-only ts-japi unsupported unsupported unsupported / unsupported — / —
codec/encode/small-links-only ts-japi 617,687 628,985 1.83% faster 2.33x slower / 2.22x slower
codec/decode-encode/small-links-only ts-japi unsupported unsupported unsupported / unsupported — / —
codec/decode/small-relationships ts-japi unsupported unsupported unsupported / unsupported — / —
codec/encode/small-relationships ts-japi 333,154 323,892 2.78% slower 2.25x slower / 2.63x slower
codec/decode-encode/small-relationships ts-japi unsupported unsupported unsupported / unsupported — / —

Remaining rows available in complete results linked above.

node v26.12.1

Base c761743513c4833fe89648062f348dca741da21b; proposed merge f889dd8bcae7d15d8a7d193ed24648becc1029f2.

Competitor changes
Suite / mode / scenario Library Base operations/s PR operations/s Change vs Kitsu base / PR

Remaining rows available in complete results linked above.

@renovate renovate Bot changed the title build(deps): update devdependency @biomejs/biome to ~2.6.0 build(deps): update devdependency @biomejs/biome to ~2.6.0 - autoclosed Oct 26, 2026
@renovate renovate Bot closed this Oct 26, 2026
@renovate
renovate Bot deleted the renovate/biomejs-biome-2.x branch October 26, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants