From 751ba3bedba4b052397f41cf5b34a933e4ecd569 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 22 Aug 2024 09:24:31 -0400 Subject: [PATCH] i2cp spec overview edits --- i2p2www/spec/i2cp.rst | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/i2p2www/spec/i2cp.rst b/i2p2www/spec/i2cp.rst index cdd4af6a..b9b481e7 100644 --- a/i2p2www/spec/i2cp.rst +++ b/i2p2www/spec/i2cp.rst @@ -12,13 +12,21 @@ I2CP Specification Overview ======== -This page specified the I2P Control Protocol (I2CP), which is the interface +This page specified the I2P Control Protocol (I2CP), which is the low-level interface between clients and the router. Java clients will use the I2CP client API, -which implements this protocol. Non-Java clients will most likely use a -higher-layer protocol such as SAM or BOB. +which implements this protocol. +There are no known non-Java implementations of a client-side library +that implements I2CP. Additionally, socket-oriented (streaming) applications would need +an implementation of the streaming protocol, but there are no non-Java libraries for that either. +Therefore, non-Java clients should instead use the higher-layer protocol SAM [SAMv3]_, +for which libraries exist in several languages. + +This is a low-level protocol supported both internally and externally +by the Java I2P router. The protocol is only serialized if the client and router are not in the same -JVM; otherwise, I2CP message objects are passed via an internal JVM interface. +JVM; otherwise, I2CP message Java objects are passed via an internal JVM interface. +I2CP is also supported externally by the C++ router i2pd. More information is on the I2CP Overview page [I2CP]_. @@ -1612,6 +1620,9 @@ References .. [RouterIdentity] {{ ctags_url('RouterIdentity') }} +.. [SAMv3] + {{ site_url('docs/api/samv3') }} + .. [Signature] {{ ctags_url('Signature') }} -- GitLab