quico 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md DELETED
@@ -1,25 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [0.1.0] - 2025-08-07
9
- ### Added
10
- - Basic QUIC server with 1-RTT support
11
- - TLS 1.3 handshake (fully JS)
12
- - HTTP/3 request/response over control streams
13
- - Static & dynamic QPACK decoding
14
- - Basic `createServer()` API
15
- - Quick start example in README
16
-
17
- ### In progress
18
- - WebTransport streams (uni & bidi)
19
- - 0-RTT support
20
- - Integration with Node.js `https`-style API
21
- - Connection teardown, keep-alive, congestion control
22
-
23
- ### Notes
24
- - This is a pre-release version under heavy development.
25
- - API may change without notice.
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>WebTransport Datagram Echo Client</title>
6
- </head>
7
- <body>
8
- <h1>WebTransport Datagram Echo</h1>
9
- <button id="sendBtn">Send "Hello QUIC"</button>
10
- <pre id="log"></pre>
11
-
12
- <script>
13
- const log = (msg) => {
14
- console.log(msg);
15
- document.getElementById('log').textContent += msg + '\n';
16
- };
17
-
18
- let transport;
19
- let writer;
20
-
21
- async function connect() {
22
- try {
23
- transport = new WebTransport('https://localhost:4433/');
24
- await transport.ready;
25
- log('✅ Connected to WebTransport server');
26
-
27
- // שליחה
28
- writer = transport.datagrams.writable.getWriter();
29
-
30
- // קבלה
31
- const reader = transport.datagrams.readable.getReader();
32
- (async function readLoop() {
33
- while (true) {
34
- const { value, done } = await reader.read();
35
- if (done) break;
36
- const text = new TextDecoder().decode(value);
37
- log('📥 Received: ' + text);
38
- }
39
- })();
40
- } catch (err) {
41
- log('❌ Connection failed: ' + err);
42
- }
43
- }
44
-
45
- document.getElementById('sendBtn').addEventListener('click', async () => {
46
- if (!writer) {
47
- log('Not connected yet...');
48
- return;
49
- }
50
- const msg = 'Hello QUIC';
51
- await writer.write(new TextEncoder().encode(msg));
52
- log('📤 Sent: ' + msg);
53
- });
54
-
55
- connect();
56
- </script>
57
- </body>
58
- </html>
@@ -1,29 +0,0 @@
1
- var quico = require('../../index'); // או './index' אם אתה מריץ מהשורש
2
- var fs = require('fs');
3
-
4
- var server = quico.createServer({
5
- SNICallback: function (servername, cb) {
6
- console.log('Getting certificate for:', servername);
7
- cb(null, {
8
- key: fs.readFileSync('certs/localhost.key'),
9
- cert: fs.readFileSync('certs/localhost.crt')
10
- });
11
- }
12
- });
13
-
14
- server.on('webtransport', function(session) {
15
- console.log('WebTransport session opened');
16
-
17
- session.ondatagram = function(data) {
18
- console.log('Datagram from client:', Buffer.from(data).toString());
19
- session.send(data);
20
- };
21
-
22
- session.onclose = function() {
23
- console.log('WebTransport session closed');
24
- };
25
- });
26
-
27
- server.listen(4433, function() {
28
- console.log('QUIC server running on port 4433');
29
- });