forked from FrancescoCeruti/linux-show-player
-
Notifications
You must be signed in to change notification settings - Fork 0
OSC on Python
s0600204 edited this page Oct 5, 2024
·
7 revisions
What follows is a comparison of different python
modules that each implement OSC
to some degree.
(The purpose of this is/was to help consider moving away from pyliblo
- it has not been updated in a long time and the author hasn't been active for several years - but this may also prove useful to other interested parties.)
Feel free to suggest other modules not mentioned below.
So, in no particular order, the modules at a glance:
Module | Licence | Latest Release | Last Known Activity | Transport | SLiP Encoding | ||
---|---|---|---|---|---|---|---|
. | Version | Date | UDP | TCP | |||
pyliblo | LGPL 2.1 | 0.10.0 | 2015-04 | 2016-06 | Yes | with PR | with PR |
pyliblo3 | LGPL 2.1 | 0.16.2 | 2024-07 | 2024-07 | Yes | One-way | No |
aiolo | BSD 3-Clause | 4.1.1 | 2020-07 | 2020-07 | Yes | Maybe | Single-ENDed |
python-osc | Unlicenced | 1.9.0 | 2024-08 | 2024-08 | Yes | Yes | Yes |
pyOSC | LGPL 2.1 | 0.3.5b-5294 | 2008-08 | 2011-06 | Yes | Yes | No |
oscpy | MIT | 0.6.0 | 2023-06 | 2023-12 | Yes | No | No |
osc4py3 | CeCILL 2.1 | 1.0.8 | 2018-08 | 2021-12 | Yes | WIP | Single/Double |
Links:
- https://pypi.org/project/pyliblo/
- http://das.nasophon.de/pyliblo/ (project website)
- https://github.com/dsacre/pyliblo (source)
- http://dsacre.github.io/pyliblo/doc/ (documentation)
- https://repology.org/project/pyliblo and https://repology.org/project/python:pyliblo
Good:
-
python
binding for the excellentliblo
library.
Ugly:
- No response to issues/PRs from Author in recent years (in fact, Author not active publicly on GitHub in any meaningful fashion since August 2018).
Links:
- https://pypi.org/project/pyliblo3/
- https://github.com/gesellkammer/pyliblo3 (source)
- https://repology.org/project/python:pyliblo3
Good:
-
python
binding for the excellentliblo
library, like the project it was forked from.
Ugly:
- Forked from
pyliblo
(first commit of repository is version 0.9.1, the next commit jumps to 0.10.0), but the change-history of its origin was not retained, nor does it attribute any of the original author(s) (in the commit metadata or in commit messages). - Most releases are not tagged in the source.
Links:
Good:
-
python
binding for the excellentliblo
library.
Worth noting:
- Makes use of
python
'sasyncio
module.
Bad:
- Documentation non-existent (even code-comments are scarce).
Ugly:
- Received messages are stripped of context (source address, OSC path): only a message's value(s) are dispatched to listeners. This makes it impossible to tell where a message came from (and thus, where to send a response).
Links:
- https://pypi.org/project/python-osc/
- https://github.com/attwad/python-osc (source)
- https://python-osc.readthedocs.io/ (documentation)
- https://repology.org/project/python:python-osc
Good:
- At first glance, this appears to have a fairly clean API.
Fair:
- Project is maintained, but not actively developed (admitted in https://github.com/attwad/python-osc/issues/128#issuecomment-753635939).
Links:
- https://pypi.org/project/pyOSC/
- https://trac.v2.nl/wiki/pyOSC (project website, dead)
- https://gitorious.org/pyosc (source, dead)
- https://github.com/ptone/pyosc (mirror)
Bad:
- Last known commit was 11 years ago.
- Readme refers to a
0.3.6
release that isn't tagged on GitHub, nor available on PyPI. (The most recent release available is0.3.5b-5294
)
Ugly:
- Project website is offline (viewable on archive.org).
- Primary source was on Gitorious, which is now defunct.
- No response to issues or PRs (on GitHub) from project creators.
- No fewer than two PRs (on GitHub) claiming to make it compatible with some version of
python 3
Links:
- https://pypi.org/project/oscpy/
- https://github.com/kivy/oscpy (source)
- https://repology.org/project/oscpy
Links:
- https://pypi.org/project/osc4py3/
- https://perso.limsi.fr/pointal/dev:osc4py3 (project website)
- https://sourcesup.renater.fr/scm/viewvc.php/osc4py3/ (source)
- https://github.com/Xinne/osc4py3 (mirror)
- https://osc4py3.readthedocs.org/ (documentation)
Good:
- Different threading models available.
- Well documented.
Bad:
- Mirror is not in sync with source.
- Activity very low in recent years.
Ugly:
- Work on TCP support ceased in 2015 (and what is present is unusable).