Skip to content
A binding to WebKitGTK+ for Common Lisp
Common Lisp Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
demo Update file headers
dom Initial binding to WebKitDOMMouseEvent
scripts run-travis updates
soup soup/init: fall back to unversioned .so
tests Reduce expected failure count
.gitignore gitignore: ignore *.fasl
.mailmap Update mailmap̈́
.travis.yml run-travis: launch the simple-browser demo
COPYING Major restructuring README: fix link markup

cl-webkit - a binding to WebKitGTK+ for Common Lisp


cl-webkit is a binding to WebKitGTK+ for Common Lisp, currently targeting WebKit version 2. The WebKitGTK+ library adds web browsing capabilities to an application, leveraging the full power of the WebKit browsing engine.

API overview

The cl-webkit API closely follows the WebKit2 API, with the exception that class based interfaces are preferred over functional interfaces in cases where both are provided. That is, *_{new,get,set} methods are excluded in favour of make-instance and slot accessors wherever possible.

For documentation on how to use the WebKit2 API, please refer to the C API documentation.

Backwards compatibility (with older WebKit2 API versions) is not a priority. The binding targets the latest version of Webkit2Gtk+ available on mainstream distributions.


Build Status

The binding currently covers most of the WebKit 2.4 API.


  • A working installation of WebKit2GTK+ (whichever package provides, e.g., libwebkit2gtk on Debian).
  • A CFFI compatible Common Lisp implementation. The package is developed using SBCL but should work on any implementation that supports CFFI.
  • A recent checkout of cl-cffi-gtk

To run the test-suite you also need a checkout of lisp-unit.


Assuming you have Quicklisp installed, do

$ git clone ~/common-lisp/quicklisp/local-projects/cl-webkit
$ lisp
* (ql:quickload :cl-webkit2)


Send patches via email or as pull requests on GitHub. Feel free to append your name to the list of CONTRIBUTORS.

A few things to keep in mind

  • When adding a new binding, maintain a consistent mapping to the C API, so that users can find what they need and easily cross-reference the C API documentation
  • Each major section of the C API should be covered by a separate file under webkit2/
  • Document the binding not the C API
  • Contributing implies an agreement to redistribute the work under the project's license (see below); please make sure that you own the rights to the work you contribute


See also

  • lispkit, a lisp browser using WebKit


cl-webkit is distributed under the MIT license (see COPYING). Please note that this licence only covers the binding itself. Refer to the distribution terms of the third-party dependencies for details.

Something went wrong with that request. Please try again.