Skip to content

Fix connection/transport reference pages for QUIC default (0.6)#498

Open
pepone wants to merge 1 commit into
icerpc:mainfrom
pepone:docs/0.6-quic-default-transport
Open

Fix connection/transport reference pages for QUIC default (0.6)#498
pepone wants to merge 1 commit into
icerpc:mainfrom
pepone:docs/0.6-quic-default-transport

Conversation

@pepone

@pepone pepone commented Jun 5, 2026

Copy link
Copy Markdown
Member

Summary

In 0.6, QUIC is the default multiplexed transport, but several reference pages in the connection/ and protocols-and-transports/ chapters still described Slic-over-TCP as the default — directly contradicting the (correct) tutorials. These were the only outright factual errors found in the 0.6 docs review and are release blockers.

Changes

  • icerpc-multiplexed-transports.md — state that the default is QUIC; show that Slic-over-TCP is selected with ?transport=tcp (dropped the "correct but redundant" framing, which is now backwards). Also fixed the pre-existing using await varawait using var syntax typos in the samples.
  • security-with-tls.md — make the tcp example explicit with ?transport=tcp so it actually demonstrates plain TCP (a bare icerpc://… URI now resolves to QUIC + TLS). Modernized the quic server-certificate example to X509CertificateLoader.LoadPkcs12FromFile + ServerCertificateContext (matching the 0.6 release notes; the X509Certificate2(string) constructor is obsolete). Fixed the coloc example's missing comma.
  • server-address.md — note that an omitted transport resolves to QUIC, with ?transport=tcp for Slic over TCP.

Part of a 3-PR series addressing the 0.6.0 docs review. This is PR 1/3 (blockers).

QUIC is the default multiplexed transport in 0.6, but several reference
pages still described Slic-over-TCP as the default, contradicting the
tutorials.

- icerpc-multiplexed-transports.md: state QUIC is the default; select
  Slic-over-TCP with ?transport=tcp (drop the "correct but redundant"
  framing); fix the `using await var` syntax typos.
- security-with-tls.md: make the tcp example explicit with
  ?transport=tcp so it actually demonstrates plain TCP; modernize the
  quic server-certificate example to X509CertificateLoader /
  ServerCertificateContext (the X509Certificate2(string) constructor is
  obsolete); fix the coloc example's missing comma.
- server-address.md: note that an omitted transport resolves to QUIC,
  with ?transport=tcp for Slic over TCP.
Copilot AI review requested due to automatic review settings June 5, 2026 15:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR corrects IceRPC 0.6 reference documentation to reflect that QUIC is the default multiplexed transport (instead of Slic-over-TCP), aligning the reference pages with the tutorials and current behavior. It also updates affected C# samples so that examples explicitly select tcp when they intend to demonstrate Slic-over-TCP.

Changes:

  • Update the multiplexed transport reference to describe QUIC as the default and show ?transport=tcp for Slic-over-TCP.
  • Clarify in the server-address docs that omitting transport for icerpc://… resolves to QUIC, and ?transport=tcp selects Slic-over-TCP.
  • Update TLS/security docs to make the TCP examples explicitly use ?transport=tcp, and modernize the QUIC server certificate loading snippet.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
content/icerpc/protocols-and-transports/icerpc-multiplexed-transports.md Updates the default transport description (QUIC) and adjusts C# examples to explicitly select TCP when needed.
content/icerpc/connection/server-address.md Adds clarification about default transport selection when transport is omitted for icerpc addresses.
content/icerpc/connection/security-with-tls.md Updates TCP/TLS examples to explicitly use ?transport=tcp and modernizes the QUIC server certificate example.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 31 to +35
In C#, you need to specify TLS configuration—in particular a X.509 certificate—for any server that uses quic. For
example:

```csharp
// SslServerAuthenticationOptions is required with QuicServerTransport.
using X509Certificate2 serverCertificate = X509CertificateLoader.LoadPkcs12FromFile(
| `icerpc://192.168.100.10:10000?transport=quic` | Connect to `192.168.100.10` on port 10000 using the icerpc protocol over QUIC. |
| `ice://hello.zeroc.com` | Connect to `hello.zeroc.com` on port 4061 using the ice protocol. |

When you omit the `transport` parameter from an `icerpc` server address, the client connection uses the default

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add a TCP example to the table above.


In C#, the default multiplexed transport is Slic over TCP and is called `tcp`. The following statements all create
equivalent icerpc connections.
In C#, the default multiplexed transport is QUIC. To run icerpc over Slic-over-TCP instead, set the transport

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer an update focused on the default, QUIC. Various ways to create a QUIC connection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants