feat(core): Gnutella search and download after Java, measured against Java

GnutellaRun adds a line of four peers: a search goes on as a query, each
peer answers with a hit for each matching file and the hits come back the
way the query came; a hit's file is fetched by HTTP on port 6346. The
file type names of the model move from the project export and import into
the core, so that the download uses them too.

Departures from Java: a peer that sent hits keeps its connection, so that
the hits of farther peers come back too (Java closes it and loses them),
and sizes are in characters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 14:59:26 +00:00
co-authored by Claude Opus 5.5
parent b4a95e6cac
commit ce5b10c1f3
13 changed files with 39934 additions and 130 deletions
+3
View File
@@ -90,3 +90,6 @@ packages/core/src/runtime/apps/emailClient.ts::smtpclient
packages/core/src/runtime/apps/::arpsend
# sw_fileexplorer_msg1: the key of a message in FILIUS' bundle, read from Java's recording as Java names it.
packages/core/test/filePrograms.test.ts::fileexplorer
# "Hallo Welt": the content of the measured example file, quoted where the Gnutella program names Java's size of it.
packages/core/src/runtime/apps/gnutella.ts::hallo
packages/core/src/runtime/apps/gnutella.ts::welt