Switch branches/tags
Nothing to show
Clone or download
davexunit Negate the udp? flag when creating messenger.
* tox.scm (make-tox): Negate 'udp?'.
Latest commit fde6776 Sep 26, 2014



Guile Scheme bindings for libtoxcore.


There are 2 ways to use guile-toxcore. The (tox) module exports a high-level API that performs error checking and abstracts away the handling of foreign data types and pointers. This is almost certainly the API that you want to use. However, if you desire to build up your own abstractions on top of the low-level C bindings or the high level bindings do not do what you want, use the (tox bindings) module.

To use the high-level API:

(use-modules (tox))

(define tox (make-tox))

(set-tox-name tox "Tox User")
(set-tox-status-message tox "Happily hacking")
;; TODO: Call your friend to ask if they've read their SICP today.
(while #t
  (tox-do tox)
  (usleep (* (tox-do-interval tox) 1000)))

To use the low-level API:

(use-modules (tox bindings))

(define tox (tox-new 1))

(tox-kill tox)

Example Client

An example client is included in the guile-toxcore distribution. Unlike guile-toxcore, the example client requires Guile version 2.0.11 or greater.

To run the client:

cd examples
cp guile-tox.sample ~/.guile-tox # Copy sample config
guile -L .. client.scm

The client does not accept input directly. In order to give commands, you must connect to the REPL server via telnet or use the geiser package in Emacs.

telnet localhost 37146


  • libtoxcore
  • GNU Guile >= 2.0.5


./autogen.sh &&
./configure &&
make &&
sudo make install


Copyright © 2014 David Thompson davet@gnu.org

guile-toxcore is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

guile-toxcore is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.