Commit Graph

423 Commits

Author SHA1 Message Date
zarazaex69
8be56493f0 feat: add clientid key 2026-05-06 19:23:16 +03:00
zarazaex69
d1454d2fa6 feat: remove b protocol 2026-05-06 19:23:16 +03:00
zarazaex69
0b11b0c1ac feat: add android build targets 2026-05-06 19:23:16 +03:00
zarazaex
6a11bb888f Merge pull request #32 from s0me0ne-25/master
More plausible personal first/last name dictionaries
2026-05-04 04:27:37 +03:00
s0me0ne-25
eac91a4c94 Update surnames
More plausible list of male last names

Composed by Gemini 3.1 Pro AI out of popular surnames of Slavic, Tatar, North-Caucasus, Georgian, Armenian and Buryat origin.
2026-05-04 00:02:20 +03:00
s0me0ne-25
aad4e5cbcb Update names
More plausible list of male first names

Composed by Gemini 3.1 Pro AI out of popular names of Slavic, Tatar, North-Caucasus, Georgian, Armenian and Buryat origin.
2026-05-03 23:55:25 +03:00
zarazaex
c631f371d0 Merge pull request #31 from alananisimov/patch-1
mobile.go 32->64 batch limit
2026-05-03 19:09:16 +03:00
Alexander
7c32586ca3 Update mobile.go
сук забыл убрать тут 32 лимит, а то скорость залупа
2026-05-03 18:42:23 +03:00
zarazaex69
2d2e9d5045 feat: configure livekit logger suppression for production 2026-05-03 18:25:27 +03:00
zarazaex69
e1ad3509db ddos script to main new 2026 crypto coin - olcrtc 2026-05-03 16:28:38 +03:00
zarazaex69
eb4ccd6886 chore: make Python scripts executable 2026-05-03 16:27:40 +03:00
zarazaex69
db3c2ccc34 Merge branch 'master' of https://github.com/openlibrecommunity/olcrtc 2026-05-03 16:15:07 +03:00
zarazaex69
a2234b6a2a perf: optimize write polling and kcp interval for lower latency 2026-05-03 16:10:32 +03:00
zarazaex69
bca50fa7c9 feat: add session epoch tracking to detect peer restarts 2026-05-03 15:53:11 +03:00
zarazaex
4b9fb13d16 Merge pull request #30 from s0me0ne-25/patch-1
Update manual.md
2026-05-03 14:16:31 +03:00
s0me0ne-25
00430f0c62 Update manual.md
Updated golang-1.26 acquisition guide for Debian to use APT not SDK.
2026-05-03 14:07:36 +03:00
zarazaex69
254613fb51 fix: golangci 2026-05-03 12:03:58 +03:00
zarazaex69
a9fdf6c831 fix: string wbstream has 3 occurrences 2026-05-03 12:02:02 +03:00
zarazaex69
c8029b5239 feat(mobile): fix name wb_stream -> wbstream 2026-05-03 11:57:41 +03:00
zarazaex69
00cdb19937 use up registr 2026-05-03 11:56:23 +03:00
zarazaex69
749560351e refactor: readme rewrite 2026-05-03 11:54:14 +03:00
zarazaex69
96c5716dcc doc: add base documentation to olcrtc 2026-05-03 11:54:13 +03:00
zarazaex69
3f559e61f7 fix: scripts 2026-05-03 11:54:13 +03:00
zarazaex69
3c816a38e8 fix: state 2026-05-03 11:54:13 +03:00
zarazaex
23535288cf Merge pull request #29 from alananisimov/mobile-provider-config
add mobile provider configuration
2026-05-03 11:18:46 +03:00
Alexander Anisimov
1fe085d7be fix mobile android build 2026-05-03 11:06:09 +03:00
zarazaex69
ee4afe6f07 fix: reconnect keepalive DONT work 2026-05-03 10:44:06 +03:00
Alexander Anisimov
7e454c619a add mobile provider configuration 2026-05-03 10:42:17 +03:00
zarazaex69
fce4d12fbc fix: waitForNewSession spam 2026-05-03 10:33:40 +03:00
zarazaex69
a4e6079148 fix: golangci 2026-05-03 10:24:18 +03:00
zarazaex69
aaa0a5013a feat(readme): actualize 2026-05-03 09:31:19 +03:00
zarazaex69
dd606ddfb2 fix: fix all golangci errors 2026-05-03 06:10:48 +03:00
zarazaex69
6183233eeb fix: fix bug where the srv side ignored WebRTC renegotiation 2026-05-03 02:04:41 +03:00
zarazaex69
1114a394fa feat(ci): add recurse submodule 2026-05-03 01:47:56 +03:00
zarazaex69
2d5ad86d35 feat(script): update scripts 2026-05-03 01:47:29 +03:00
zarazaex69
de006acdc7 feat: remove ui completely 2026-05-03 01:32:54 +03:00
zarazaex69
71d164729f Merge branch 'transport/smux' into transport/videochannel 2026-05-03 01:24:39 +03:00
zarazaex69
5bb8178e50 feat(smux): replace internal/mux with smux over KCP
Replace the hand-rolled multiplexer (internal/mux) with xtaci/smux v2
running on top of the existing KCP-reliable vp8channel transport.

- Add internal/muxconn: io.ReadWriteCloser adapter bridging link.Link
  (message-oriented) into the byte-stream smux expects; applies AEAD
  on every write and inverts it on every received message
- Rewrite client: smux.Client session over muxconn; OpenStream per
  SOCKS5 connection; reconnect handler tears down and rebuilds session
- Rewrite server: smux.Server session; AcceptStream loop dispatches
  each stream to a proxy handler; tolerates session bounces on reconnect
- Delete internal/mux: all sequence/reorder/buffer logic is now
  handled by smux + KCP
2026-05-03 00:45:58 +03:00
zarazaex69
14f9ed72ec feat: add smux dependency for multiplexing support 2026-05-02 18:12:01 +03:00
zarazaex69
6aaf68c6b3 Merge branch 'transport/vp8-kcp' into transport/videochannel
Wrap the VP8 carrier in a KCP session so the upper layer gets reliable,
ordered, message-oriented delivery. Fixes the random 0 B/s stalls that
happened when a single VP8 frame was dropped (drainOutbound on
reconnect, inbound overflow, or RTP loss invalidating partial assembly):
mux.Stream.nextSeq would never advance past the hole and curl would
park on recv until a new mux stream was opened.

KCP retransmits recover from those losses transparently.
2026-05-02 18:07:31 +03:00
zarazaex69
cb6922dfbd build: promote kcp-go to direct dependency and update lossyconn 2026-05-02 18:05:41 +03:00
zarazaex69
35c05b654a feat(vp8channel): wrap carrier in KCP for reliable, ordered delivery
Plug a KCP session in front of the VP8 wire so the upper layer (mux/curl
tunnels) gets reliable, ordered, message-oriented delivery on top of an
otherwise unreliable carrier.

Why this fixes the random 0 B/s stalls
--------------------------------------
The previous design had no retransmits and no ACKs. A single dropped
VP8 frame (from drainOutbound on micro-reconnect, the inbound 'default:'
overflow drop, or RTP loss invalidating a partial assembly) created a
hole in mux.Stream.nextSeq that would never be filled: the receiver
parked all subsequent frames in outOfOrder forever and curl read 0 B/s
until a brand new mux stream id was opened.

KCP layer details
-----------------
* Stream mode + 4-byte big-endian length prefix. Message mode would be
  ideal but UDPSession.Write fragments anything > MSS *outside* of
  kcp.Send, leaving every fragment with frg=0 and breaking PeekSize-based
  reassembly. Length-prefix framing under stream mode is the canonical
  workaround.
* nodelay(1, 10ms, fast-resend=2, no congestion control) — KCP turbo
  preset, identical to kcptun/shadowsocks tuning. Recovers from burst
  losses in tens of ms instead of seconds.
* SndWnd/RcvWnd 4096 segments to absorb the multi-segment burst that
  a single VP8 sample can carry.
* MTU 1400 (kcp-go hardcodes mtuLimit=1500).

Wire compatibility with VP8 keepalives
--------------------------------------
KCP packets always start with the LE conv id (0x01 0xEE 0xFF 0xC0). VP8
keepalive frames start with 0x30. The receive path filters by the magic
byte before handing the buffer to KCP, so keepalives never poison the
KCP state machine.

Features() now advertises Reliable+Ordered. Drop-on-overflow paths in
the carrier are kept — KCP detects the loss via SACK and retransmits.

Refs: transport/vp8-kcp
2026-05-02 18:03:44 +03:00
zarazaex69
940b32e1fb chore: remove local replace directive for gr module 2026-05-02 15:01:10 +03:00
zarazaex69
21d46e478b refactor: remove debug logging and unused queue monitor 2026-05-02 14:56:33 +03:00
zarazaex69
602c8a7b0d refactor: remove telemetry and metrics collection 2026-05-02 14:39:49 +03:00
zarazaex69
1101528cf6 refactor: add comprehensive diagnostics and flow control to data pumping 2026-05-02 02:18:45 +03:00
zarazaex69
647f605905 feat: add inbound queue and dispatch goroutine for vp8 transport 2026-05-01 13:27:21 +03:00
zarazaex69
2a24f7f196 fix: change vp8Keepalive from P-frame to keyframe 2026-05-01 10:16:36 +03:00
zarazaex69
5ddc942405 refactor: adjust vp8 keepalive timing and queue parameters 2026-05-01 10:11:43 +03:00
zarazaex69
9a5a4b249d feat(vp8channel): drain outbound channel before reconnect callback 2026-04-30 14:13:54 +03:00