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/amulematerialized fromhttps://github.com/amule-project/amule. Date: 2026-05-17
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, anduint64little-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.datpreferencesKad.datnodes.datserver.metclients.metknown.met.part.metcanceled.metemfriends.metstatistics.dat- Kad index files such as
load_index.dat,key_index.dat, andsrc_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.datvalidation from length-only to parsed IP/client ID diagnostics. - Add a lightweight
preferences.datidentity/shape validator. - Enrich
nodes.datinspection with version, bootstrap, endpoint, and verification diagnostics. - Add
known.metand.part.metsummary 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
.metfiles - 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.