Skip to content

IDEA-AMULE-WATCHLIST - aMule Reference Watchlist

Exploratory only. This is not an active implementation plan, not release scope, and not current branch direction. Treat aMule as reference material unless a future docs/active/ item explicitly promotes a narrow slice.

Analysis based on analysis/amule materialized from https://github.com/amule-project/amule. Date: 2026-05-17 This dated analysis retains its original source provenance. The current analysis/amule checkout tracks amule-org/amule; recheck paths and behavior against that upstream before promoting any idea.

Newer cross-project snapshot: eD2K Extension Interoperability And Evolution records aMule's 2026-10-01 capability parsing, uTP/QUIC scaffolding, server-assisted NAT-T codecs, and current interoperability limits. This watchlist retains its original dated scope as provenance.


Summary

aMule has limited immediate implementation value for eMuleBB because the code base differs materially in toolkit, build system, runtime assumptions, and app structure. It remains useful as a compatibility witness and as a source of focused protocol/file-format fixtures to revisit as aMule evolves.

Do not port aMule code directly by default. Mine it only for:

  • wire-format fixtures and parser regression ideas
  • offline file-format diagnostic ideas
  • tag/name/type inventories for clearer compatibility tests
  • future parity checks when aMule adds narrowly relevant behavior

Any promoted work should be implemented through eMuleBB-native seams, tests, or diagnostics, with stock eMule/eD2K/Kad behavior treated as the authority.

Protocol And Tag Test Ideas

aMule has focused Kad/eD2K tag serialization tests in analysis/amule/unittests/tests/CTagTest.cpp. These are useful as a future fixture inventory for eMuleBB protocol parser regression tests, especially:

  • Kad tag-list packets with UTF-8 filenames and mixed file metadata.
  • Kad integer width coverage for uint8, uint16, uint32, and uint64 little-endian encodings.
  • Kad BSOB, hash, float, and blob handling.
  • ED2K numeric and string tag-name blob cases.
  • Kad/eD2K tag-name inventories that can become compact "known names parse" regression tables.

Current recommendation: if revisited, add low-risk native byte-vector tests first. Avoid linking aMule's test harness or pulling broad production app runtime into the native test executable.

File-Format Tool Ideas

aMule includes a fileview utility under analysis/amule/src/utils/fileview for read-only inspection of profile and persistence files. It covers:

  • preferences.dat
  • preferencesKad.dat
  • nodes.dat
  • server.met
  • clients.met
  • known.met
  • .part.met
  • canceled.met
  • emfriends.met
  • statistics.dat
  • Kad index files such as load_index.dat, key_index.dat, and src_index.dat

This has little immediate implementation value because eMuleBB already has some persistence seams for server.met, nodes.dat, and preferencesKad.dat. The useful future direction is to mine the file-shape knowledge for richer offline validators or diagnostics, not to port the utility directly.

Potential future slices:

  • Expand preferencesKad.dat validation from length-only to parsed IP/client ID diagnostics.
  • Add a lightweight preferences.dat identity/shape validator.
  • Enrich nodes.dat inspection with version, bootstrap, endpoint, and verification diagnostics.
  • Add known.met and .part.met summary validators once tag-vector coverage is stronger.
  • Reuse tag/name/type display tables for clearer diagnostic output.

Watch Guidance

Re-check aMule periodically when it changes in areas that overlap eMuleBB:

  • Kad/eD2K protocol serialization tests
  • profile/persistence file decoders
  • corruption recovery behavior for .met files
  • parser hardening around malformed tags or truncated payloads
  • compatibility fixes called out in aMule release notes or changelog

Keep this as a watchlist until a specific item has a concrete eMuleBB bug, test gap, support-diagnostic need, or compatibility risk attached to it.