Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled Details
The basics of NGC groups are supported, as well as AV and toxencryptsave.
There is no coverage of conferences as they are not used in
and the list of still unwrapped calls as of Sept. 2022 can be found in
tox.c-toxcore.missing. The code is typed so that every call in
tox*.py should have the right signature, and it runs
toxygen with no apparent issues.
It has been tested with UDP and TCP proxy (Tor). It has not been
tested on Windows, and there may be some minor breakage, which should be
easy to fix. There is a good coverage integration testsuite in
Change to that directory and run
tests_wrapper.py --help; the test
suite gives a good set of examples of usage.
python3 setup.py install or put the parent of the wrapper
directory on your PYTHONPATH and touch a file called
in its parent directory.
Then you need a
libs directory beside the
and you need to link your
libtoxencryptsave.so into it. Link all 3 filenames
libtoxcore.so if you have only
(which is usually the case if you built
autogen/configure). If you want to be different,
the environment variable TOXCORE_LIBS overrides the location of
look in the file
toxygen_wrapper/libtox.py for the details.
To test, run
python3 toxygen_wrapper/tests/tests_wrapper.py --help
As is, the code in
tox.py is very verbose. Edit the file to change
def LOG_ERROR(a): print('EROR> '+a)
def LOG_WARN(a): print('WARN> '+a)
def LOG_INFO(a): print('INFO> '+a)
def LOG_DEBUG(a): print('DBUG> '+a)
def LOG_TRACE(a): pass # print('TRAC> '+a)
pass # or use
logging.logger to suite your tastes.
logging.logger can be dangerous in callbacks in
so we use simple print statements as default. The same applies to
No prerequisites in Python3.
There are a number of other wrappings into Python of Tox core.
This one uses ctypes
which has its merits - there is no need to recompile anything as with
Cython - change the Python file and it's done. And you can follow things
in a Python debugger, or with the utterly stupendous Python feature of
gdb -ex r --args /usr/bin/python3.9 <pyfile>).
CTYPES code can be brittle, segfaulting if you've got things wrong, but if your wrapping is right, it is very efficient and easy to work on. The faulthandler module can be helpful in debugging crashes (e.g. from segmentation faults produced by erroneous C library wrapping).
https://github.com/TokTok/py-toxcore-c Cython bindings. Incomplete and not really actively supported. Maybe it will get worked on in the future, but TokTok seems to be working on java, rust, scalla, go, etc. bindings instead. No support for NGC groups or toxencryptsave.
https://github.com/oxij/PyTox forked from https://github.com/aitjcize/PyTox by Wei-Ning Huang firstname.lastname@example.org. Hardcore C wrapping which is not easy to keep up to date. No support for NGC or toxencryptsave. Abandonned. This was the basis for the TokTok/py-toxcore-c code until recently.
To our point of view, the ability of CTYPEs to follow code in the debugger is a crucial advantage.
Although Tox works over Tor, we do not recommend its usage for anonymity as it leaks DNS requests due to a 6-year old known security issue: https://github.com/TokTok/c-toxcore/issues/469 unless your Tox client does hostname lookups before calling Tox (like toxygen does). Otherwise, do not use it for anonymous communication unless you have a firewall in place.
The Tox project does not follow semantic versioning of its main structures so the project may break the underlying ctypes wrapper at any time; it's not possible to use Tox version numbers to tell what the API will be. In which case you'll have to go into the tox.py file in https://git.plastiras.org/emdee/toxygen_wrapper to fix it yourself. The last tested git commit is 5dd9ee3f65423a4095cacb8396a5d406a27610c7 2024-02-10
Up-to-date code is on https://git.plastiras.org/emdee/toxygen_wrapper
Work on this project is suspended until the MultiDevice problem is solved. Fork me!