Wayflan is a from-scratch Wayland communication library for Common Lisp. It makes a good-faith effort to mimic libwayland behavior not defined in the Wayland spec, to keep compatibility between the two libraries.
Wayflan is not a compositor nor a GUI toolkit. Its purpose is to parse Wayland protocol XML documents and exchange Wayland messages between other processes.
Features:
Client support
All implementation done in Common Lisp from the socket up
Enum values are translated into keywords
Wayland protocol introspection
ASDF component
:wayflan-client-implgenerates code from XML. ASDF's extensible components make it possible to teach your program new protocols for Wayland without the need of a special build system.
When dealing with network protocols and file formats, it's common to have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned flavors. Common Lisp sort of supports this by specifying :element-type for streams, but that facility is underspecified and there's nothing similar for read/write from octet vectors. What most people wind up doing is rolling their own small facility for their particular needs and calling it a day.
This library attempts to be comprehensive and centralize such facilities. Functions to read 16-, 32-, and 64-bit quantities from octet vectors in signed or unsigned flavors are provided; these functions are also SETFable. Since it's sometimes desirable to read/write directly from streams, functions for doing so are also provided. On some implementations, reading/writing IEEE singles/doubles (i.e. single-float and double-float) will also be supported.
clingon is a command-line option parsing library for Common Lisp. Its features include:
Support for subcommands
Support for command aliases
Support for short and long options
Related options may be grouped into categories
Short options may be collapsed into a single argument, as in
-xyzLong options support the notations
--long-opt argand--long-opt=argAutomatic generation of help/usage information for commands and subcommands
Out-of-the-box support for
--versionand--helpSupport for various kinds of options including string, integer, boolean, switch, enum, list, counter, filepath, etc.
Subcommands can look up global options defined in parent commands
Support for required options
Options can be initialized via environment variables
Single interface for creating options using
CLINGON:MAKE-OPTIONGenerate documentation for your command-line application
Support for
pre-hookandpost-hookactions for commands, which allow invoking functions before and after the respective handler of the command is executedSupport for Bash and Zsh completions
Extensibility, so if you don't find something you need you can extend it by developing a new option kind, or even a new mechanism for initializing options, e.g., by looking up an external key/value store
TODO
stumpwm like Wayland compositor.
Helps writing concise CFFI-related code.
SCRibe-like reader extension for Common Lisp.
SCRibe-like reader extension for Common Lisp.
Common lisp cmd argument parser inspired by python argparse
This library contains utilities for parsing Common Lisp code.
This package provides a Common Lisp collection of assertions.
This package provides first-class global environments for Common Lisp.
Coleslaw is a static site generator written in Common Lisp.
This package provides a Common Lisp system implementing event bus.
High performance JSON encoder and decoder. Currently support: SBCL, CCL.
CL-PUNCH is a Scala-like anonymous lambda literal.
This is a Common Lisp library for reading PNG images.
This package provides a grab bag of miscellaneous Common Lisp utilities.
This library provides low-level libuv bindings for Common Lisp.
This library provides payment API wrappers over BTCPay, Paypal, and Stripe.
Germinal is a server for the Gemini protocol, written in Common Lisp.
This package provides a flexible shallow/deep copy mechanism for Common Lisp.
This package provides a DSL for array slices in Common Lisp.
cl-annot is an general annotation library for Common Lisp.