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