DEV Community

Nytrox
Nytrox

Posted on

I built a Python library to make TCP networking as simple as Fastapi

TCP networking in Python is painful. You deal with raw sockets, manual buffering, thread management, message framing... it's a lot just to send a message between two programs.

So I built Veltix — an open-source Python library that makes real-time TCP networking simple and intuitive.

What does it look like?

Server:

from veltix import Server, ServerConfig, Events, MessageType

MSG = MessageType(code=300, name="chat")

server = Server(ServerConfig(host="0.0.0.0", port=8080))

def on_message(client, response):
    print(f"Received: {response.content.decode()}")

server.set_callback(Events.ON_RECV, on_message)
server.start()
Enter fullscreen mode Exit fullscreen mode

Client:

from veltix import Client, ClientConfig, Request, MessageType

MSG = MessageType(code=300, name="chat")

client = Client(ClientConfig(server_addr="127.0.0.1", port=8080))
client.connect()
client.get_sender().send(Request(MSG, b"Hello Server!"))
Enter fullscreen mode Exit fullscreen mode

That's it. No raw sockets, no manual buffering, no thread management.

What does Veltix handle for you?

  • TCP stream fragmentation — messages are always received complete, even if split across multiple packets
  • Message integrity — every message is SHA-256 hashed and verified automatically
  • PING/PONG — built-in latency measurement
  • send_and_wait() — send a request and block until you get the matching response, like an HTTP request
  • Broadcasting — send to all connected clients in one call
  • Thread-safe callbacks — your on_recv runs in a thread pool, so slow callbacks never block message reception

Why I built it

I wanted to build real-time applications in Python without writing the same boilerplate networking code every time. Libraries like asyncio are powerful but have a steep learning curve. I wanted something that felt as simple as FastAPI but for persistent TCP connections.

Performance

Benchmarked on Python 3.14, Linux:

  • Average latency: 0.012ms
  • Throughput: 67,000+ msg/s burst
  • 64 players @ 64 tick/s: 100% message delivery

Current status

Veltix is at v1.3.0 with 2000+ downloads in 2 months. It's stable, tested, and ready to use.

What's next?

  • v1.4.0 — HELLO/HELLO_ACK handshake + thread pool for callbacks (coming soon)
  • v1.5.0 — decorator-based message routing (@server.route(MY_TYPE))
  • v1.6.0 — plugin system

Links

I'd love to hear what you think — feedback, questions, or ideas are very welcome!

Top comments (2)

Collapse
 
harsh2644 profile image
Harsh

FastAPI for TCP networking? Yes please. The boilerplate with raw sockets is finally gone. MessageType with codes + names is a smart design choice. Definitely trying this for my next real-time project. 🔥

Collapse
 
nytrox profile image
Nytrox

Thanks so much! That's exactly the use case Veltix was built for. Would love to hear how it goes on your project, feel free to open an issue or discussion on GitHub if you run into anything!