No description
Find a file
2025-09-15 11:57:22 +03:00
.github/workflows Update docs.yml 2025-04-04 04:01:31 +03:00
src init 2025-04-03 21:53:39 +03:00
tests wip tests 2025-04-04 03:44:12 +03:00
.gitignore Initial commit 2025-03-31 11:03:04 +03:00
libdatachannel.nimble wip tests 2025-04-04 03:44:12 +03:00
LICENSE Add MIT License to the project 2025-09-15 11:57:22 +03:00
README.md Remove logo image from README 2025-09-13 14:25:00 +03:00

Nim language 👑 bindings for Libdatachannel
A standalone WebRTC Data Channels, WebRTC Media Transport, and WebSockets

nimble install libdatachannel

API reference
Github Actions Github Actions

😍 Key Features

  • Lightweight WebRTC Data Channel/Media Transport

  • Fast Server/Client WebSockets

  • High-level API in Nim style!

  • Low-level bindings libdatachannel

Build the library

First, you will need to build libdatachannel from GitHub source. See Building instructions

Examples

WebSocket Example

WebSocket Server This is a simple WebSocket server that listens for incoming connections and echoes back any messages it receives.

from std/os implement sleep
import libdatachannel/websockets

proc connectionCallback(wsserver: cint, ws: cint, userPtr: pointer) {.cdecl.} =

  proc wsMessageCallback(ws: cint, msg: cstring, size: cint, userPtr: pointer) =
    echo "Message from client ", $msg    
    ws.message(msg) # echo the message back

  discard rtcSetMessageCallback(ws, wsMessageCallback)

  # send a welcome message
  ws.message("Welcome to WebSocket Server!")

let wss = newWebSocketServer(port = Port(1234))
wss.startServer(connectionCallback)

while true:
  sleep(1000)

WebSocket Client

from std/os implement sleep
import libdatachannel/websockets

let client = newWebSocketClient("ws://127.0.0.1:1234")
client.listen(onMessage) do(ws: cint, message: cstring, size: cint, userPtr: pointer):
  echo $message

sleep(500)
while true:
  wsclient.send("Hello from client!")
  sleep(1000)

Peer Connection

todo

❤ Contributions & Support

🎩 License

MIT license. Made by Humans from OpenPeeps.
Copyright © 2025 OpenPeeps & Contributors — All rights reserved.