Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: moscajs/aedes
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.51.3
Choose a base ref
...
head repository: moscajs/aedes
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 14 commits
  • 66 files changed
  • 3 contributors

Commits on May 6, 2025

  1. Configuration menu
    Copy the full SHA
    dcd1d39 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2025

  1. chore: update dependencies (#1028)

    * chore: update dependencies
    
    * update @types/node,tsd, typescript
    
    * remove @typescript-eslint
    
    * more updates
    
    * update uuid
    
    * update CI to node 20,22,24
    seriousme authored Jun 17, 2025
    Configuration menu
    Copy the full SHA
    f328ee1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef5e1a8 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2025

  1. Configuration menu
    Copy the full SHA
    f874bb1 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2025

  1. chore: migrate to ES6 classes (#1032)

    * chore: migrate to ES6 classes
    
    * add constructor check to test/basic.js
    
    * add teardown to Aedes constructor test
    
    * fix basic.js
    seriousme authored Jun 23, 2025
    Configuration menu
    Copy the full SHA
    16e1886 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2025

  1. feat: automate benchmarking (#1035)

    * feat: automate benchmark testing
    
    * group averages
    
    * add percentages to report.js
    
    * fix missing counter reset in bombingQoS1
    
    * add README.md and examples
    
    * update bombingQoS1
    
    * remove benchmark examples
    
    * improve benchmarking
    
    * put summary first
    seriousme authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    04e391f View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2025

  1. feat!: migrate to async persistence (#1034)

    This PR migrates Aedes to use the async persistence interface.
    
    It contains the following sub items:
    
    - [X] replace all callback calls to persistence by `.then()` calls
    - [X] move all side effects (setting up persistence, attaching event
    handlers etc) to a `listen()` method of Aedes
    - [X] update `createBroker()` to be async and make it await `listen()`
    as well
    - [X] update exports so that they produce a warning if people use old
    style calling
    - [X] update Typescript typing
    - [X] update documentation including examples
    - [X] add a `migration.md` to help users migrate.
    - [X] do some benchmark tests to see performances are kept
    - [X] update node engines version to >=20
    - [X] updates all dependencies to current except for Tap and
    @sinonjs/fake-timers
    
    BREAKING CHANGES: See
    [docs](https://github.com/moscajs/aedes/blob/main/docs/MIGRATION.md)
    seriousme authored Jul 14, 2025
    Configuration menu
    Copy the full SHA
    f6a09bf View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2025

  1. feat: automate benchmark on PR requests using Github Actions (#1037)

    This PR adds Github actions to automate benchmark running on PR requests
    
    It will create a [Github Job
    Summary](https://github.blog/news-insights/product-news/supercharging-github-actions-with-job-summaries/)
    of the benchmark and add it to the benchmark action (see
    https://github.com/moscajs/aedes/actions/runs/16239498783#summary-45853979456
    )
    
    The benchmark steps run serialized in the hope that performance on a
    single runner does not vary too much.
    I have been building testing this using
    seriousme#1 which also shows how it
    operates.
    
    It also shows that variation between results is inevitable, even when
    running on the same runner and the Aedes code is identical !!
    
    In seriousme#1 I was able to add the
    comment automatically to the PR using
    `.github/actions/sticky-pr-comment/action.yml` however if you send a PR
    from a fork the GITHUB_TOKEN that runs the actions by default (event:
    [pull_request](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request)
    ) only has `read` access on the PR for security reasons (see [Pull
    Request events for forked
    repositories](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull-request-events-for-forked-repositories))
    
    This can be fixed by attaching to the event:
    [pull_request_target](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target),
    however Github notes explicitly: *Avoid using this event if you need to
    build or run code from the pull request.*
    
    So for now I used Github Job Summary instead.
    
    Kind regards,
    Hans
    
    ---------
    
    Co-authored-by: Daniel Lando <daniel.sorridi@gmail.com>
    seriousme and robertsLando authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    86f5b45 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2025

  1. Configuration menu
    Copy the full SHA
    8220f0a View commit details
    Browse the repository at this point in the history
  2. chore: migrate to ESM (#1039)

    This PR migrates Aedes to ESM.
    I followed Sindre Sorhus' checklist mentioned by Daniel in #1038:
    
    - [X] Add "type": "module" to your package.json 
    - [X] Replace "main": "index.js" with "exports": "./index.js" in your
    package.json.
    - [X] Update the "engines" field in package.json to Node.js 20: "node":
    ">=20".
    - [X] Remove 'use strict'; from all JavaScript files.
    - [X] Replace all require()/module.export with import/export.
    - [X] Use only full relative file paths for imports: import x from '.';
    → import x from './index.js';.
    - [X] If you have a TypeScript type definition (for example,
    index.d.ts), update it to use ESM imports/exports.
    - [X] Use the [node:
    protocol](https://nodejs.org/api/esm.html#esm_node_imports) for Node.js
    built-in imports.
    
    And added the following items:
    - [X] remove `proxyquire` as it does not work with ESM (Proxy-require,
    the name says it all)
    - [X] monkey patch neostandard in eslint.config.js as it does not
    support import assertions yet (I opened a ticket with them, but this
    works)
    - [X] add `test/require.cjs` which checks if `require("aedes")` still
    works for those that need it.
    
    Enjoy!
    Hans
    For reference: I used `ts2esm` with a simple `jsconfig.json` to do most
    of the heavy lifting.
    
    ---------
    
    Co-authored-by: Daniel Lando <daniel.sorridi@gmail.com>
    seriousme and robertsLando authored Jul 16, 2025
    Configuration menu
    Copy the full SHA
    d1cc2a3 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2025

  1. chore: update dependencies (#1041)

    This PR updates all dependencies to their latest versions:
     - @sinonjs/fake-timers   ^11.2.2  →   ^14.0.0
     - @types/node           ^24.0.12  →  ^24.0.14
     - eslint                 ^9.30.1  →   ^9.31.0
     - mqemitter               ^7.0.0  →    ^7.1.0
     - release-it             ^19.0.3  →   ^19.0.4
     - tap                   ^16.3.10  →   ^21.1.0
    
    It removes the following dev dependencies that were no longer used:
    - typescript
    - snazzy
    
    The upgrade of tap required:
    - a new .taprc as the contents were not relevant anymore for v21
    - adjustment of package.json as e.g. the Tap -J flag is now default
    behavior
    - fixing of a few tests in `client-pub-sub.js ` that incorrectly passed
    too many arguments to t.pass()
    - adjustment of CI.yml because the location of the coverage folder was
    changed by Tap
    
    It also removes a console.log() from `test/connect.js` which was a
    leftover from debugging.
     
    As a bonus I modified CI.yml slightly so that the first job of the
    matrix will always upload coverage and we do not need to update the
    nodeJS version in this specific "if" anymore.
    
    Kind regards,
    Hans
    seriousme authored Jul 17, 2025
    Configuration menu
    Copy the full SHA
    b5178c0 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2025

  1. chore: replace tap by node:test (#1042)

    This PR replaces Tap by node:test
    
    Tasks:
    -  [x] auth.js
    -  [x] basic.js
    -  [x] bridge.js
    -  [x] client-pub-sub.js
    -  [x] close_socket_by_other_party.js
    -  [x] connect.js  (with TODO's)
    -  [x] events.js
    -  [x] keep-alive.js
    -  [x] meta.js (with 1 TODO)
    -  [x] not-blocking.js
    -  [x] qos1.js
    -  [x] qos2.js
    -  [x] regr-21.js
    -  [x] require.cjs
    -  [x] retain.js (with 1 TODO)
    -  [x] topics.js
    -  [x] will.js
    -  [x] update package.json scripts
    -  [x] update package.json devDependencies
    -  [x] update 'coverage' directory in ci.yml
    
    The following devDependencies have been replaced by NodeJS native
    functionality
     - @sinonjs/fake-timers
     - concat-stream
     - duplexify
     - mqtt-connection
     - tap
    
    It adds `c8` as devDependency to facilitate test coverage.
    seriousme authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    9063215 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2025

  1. chore(dev): fix incorrect automated benchmark threshold handling (#1046)

    A bug in the benchmarking report triggered a fail if the benchmark of
    the branch to merge scored more than the threshold over the main branch
    (ie. the merge branch is better), where it should fail if the score is
    more than the threshold below the main branch.
    
    This PR aims to fix that, and also improves reporting in case of a fail.
    
    Kind regards,
    Hans
    seriousme authored Sep 3, 2025
    Configuration menu
    Copy the full SHA
    9b76359 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2025

  1. Configuration menu
    Copy the full SHA
    2c6882e View commit details
    Browse the repository at this point in the history
Loading