python-osc
Open Sound Control server and client implementations in pure Python
What it is and what it does
python-osc is a pure-Python implementation of the Open Sound Control protocol, a network protocol for communicating musical and other real-time data between computers and synthesizers. It provides both server and client sides, supporting UDP and TCP transports with flexible concurrency modes (blocking, threading, forking, or asyncio). The library includes a dispatcher that maps OSC addresses to Python callback functions, allowing you to define handlers for incoming messages and send responses back.
The package is designed for audio/music applications, live performance control, and any scenario requiring low-latency networked messaging of structured data. It handles standard OSC argument types (integers, floats, strings, MIDI, timestamps, blobs) and supports both simple point-to-point messaging and bundled messages. With no external dependencies and active maintenance, it is ready for production use.
Use it for:
- Build a networked music controller that sends OSC messages from a Python script to a DAW or synthesizer.
- Create an OSC server to receive control messages from hardware controllers or other applications and trigger Python callbacks.
- Implement real-time parameter automation by bundling multiple OSC messages and sending them atomically to a remote device.
- Integrate OSC messaging into a live performance or interactive installation where Python coordinates with external audio software.
- Route and transform OSC traffic between multiple networked audio applications using a dispatcher-based relay.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
python-osc implements Open Sound Control (OSC) servers and clients in pure Python, supporting UDP and TCP protocols with multiple concurrency models (blocking, threading, forking, asyncio) and a dispatcher-based address-to-callback routing system.
Yes. python-osc is a stable, actively maintained, dependency-free implementation of a well-defined protocol. It has no known vulnerabilities, low install friction, and explicit public-domain licensing. Install it if you need to send or receive OSC messages from Python; the only constraint is a Python 3.10+ requirement.
Install
python-osc on PyPI
pip
pip install python-oscuv
uv add python-oscpoetry
poetry add python-oscInstalling python-osc
Before you install
Installation is straightforward with no external dependencies; the package is pure Python and distributed as a wheel. Maintenance is active with a recent release (134 days ago) and steady repository activity.
License in practice
The package is released under the Unlicense (public domain dedication), which places no restrictions on use, modification, or distribution for any purpose. License treatment is marked unclear in the metadata, but the raw license text is explicit.
Quickstart
pip install python-osc
from pythonosc import udp_client
client = udp_client.SimpleUDPClient("127.0.0.1", 5005)
client.send_message("/filter", 0.5)
Requires Python 3.10 or later.
Verify before relying
- Whether the 'unclear' license_treatment flag reflects a known ambiguity or is a metadata artifact given the explicit Unlicense text.
- Performance characteristics under high-throughput message loads or with many concurrent connections.
Package facts
| License | This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 134 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,269/month — #13,160 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_osc-1.10.2-py3-none-any.whl
Keywords: osc, sound, midi, music
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
icmplibicmplib provides a pure Python implementation…
copyleft · top 5,000 on PyPI
pulsectlProvides a high-level Python interface to…
permissive · top 15,000 on PyPI
sonos-websocketAsync Python library for communicating with…
permissive · top 15,000 on PyPI
pyobjc-framework-AVRoutingProvides Python bindings to Apple's AVRouting…
permissive · top 15,000 on PyPI
pyforked-daapdA Python client library for communicating with…
permissive · top 15,000 on PyPI
PyLinkPyLink provides a unified file-like interface…
permissive · top 15,000 on PyPI
ajsonrpcImplements the JSON-RPC 2.0 protocol with an…
permissive · top 5,000 on PyPI
pproxypproxy is an asynchronous proxy server that…
permissive · top 15,000 on PyPI
python-songpalPython library for controlling Sony audio…
copyleft · top 15,000 on PyPI
python-rtmidipython-rtmidi provides a Python interface to…
permissive · top 15,000 on PyPI