/guile-wayland

Guile Scheme FFI bindings to the Wayland protocol

Primary LanguageSchemeGNU General Public License v3.0GPL-3.0

guile-wayland

logo.svg

https://github.com/guile-wayland/guile-wayland/actions/workflows/ci.yml/badge.svg

Guile-Wayland is library that provides access to the Wayland Protocol for programs written in GNU Guile Scheme.

Features

  • The main feature is auto-generating Guile Code (GOOPs classes) from Wayland’s XML descriptions, minimizing direct C interop. See (@@ (wayland scanner) use-wayland-protocol)
  • To simplify this a separate library guile-bytestructure-class was written. It’s based on scheme-bytestructures

Requirements

  • Autoconf
  • Automake
  • Libtool
  • Pkg-config
  • Texinfo
  • Guile
  • Wayland
  • Scheme-bytestructures
  • Guile-bytestructure-class

Distribution

Directories:

  • example - examples of guile-wayland-usage
  • libguile-wayland - sources of the library (.c)
  • modules - scheme modules (.scm)
  • tests - unit tests

Installation

The library can be installed by the following means:

  • Using GNU Guix: guix package -f guix.scm. It’s much recommended to do so.
  • Manually (assuming you are familiar with GNU Make & friends)

Development

It’s recommended to use GNU Guix with GNU Emacs (with guile-geiser) or any other modern convenient Guile development environment available to work on this library. For quick interactivity launch the repl (repl.sh) and connect to it with your IDE.

License

Guile-Wayland 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. Please see COPYING file for the terms of GNU General Public License.