Showcase of all the available Guile Scheme packages via the Guix package manager
Let us promote the adoption of this great and powerful language, and to make the ecosystem better.
Copyright © Josep Bigorra <jjbigorra@gmail.com>
GNU Artanis is a web application framework written in Guile Scheme. A web application framework (WAF) is a software framework that is designed to support the development of dynamic websites, web applications, web services and web resources. The framework aims to alleviate the overhead associated with common activities performed in web development. Artanis provides several tools for web development: database access, templating frameworks, session management, URL-remapping for RESTful, page caching, and more.
(list license:gpl3+ license:lgpl3+)
GuileScript is a toy compiler that aims to compile Guile to JavaScript. It currently does not do much, but it might in the future.
license:gpl3+
This package provides Guile modules to interface with the OAuth and OAuth2 protocols.
license:gpl3+
Guile OpenAI is an implementation of the OpenAI API in Guile Scheme, providing a convenient interface for interactive programming with their AI models.
license:agpl3+
This package provides macros for functional chaining in Guile, similar
to UNIX pipes (|
), Clojure's threading macros (->
and
->>
).
license:gpl3+
This package provides an implementation of ActivityStreams and ActivityPub in Guile. It includes a full (currently demo) web server.
license:gpl3+
f.scm is a library intended to facilitate working with files and directories (the file system in general). It was initially inspired by the f library for Emacs.
license:gpl3+
Guildhall is a package manager written for Guile Scheme. A guild is an association of independent craftspeople. A guildhall is where they meet. This Guildhall aims to make a virtual space for Guile wizards and journeyfolk to share code. On a practical level, Guildhall lets you share Scheme modules and programs over the internet, and install code that has been shared by others. Guildhall can handle dependencies, so when a program requires several libraries, and each of those has further dependencies, all of the prerequisites for the program can be installed in one go.
license:gpl3+
guile-aspell is a Guile Scheme library for comparing a string against a dictionary and suggesting spelling corrections.
license:gpl3+
guile-avatar
helps you to determine avatars (or profile
pictures) for email addresses using the Libravatar specification.
license:agpl3+
Guile-Bash provides a shared library and set of Guile modules, allowing you to extend Bash in Scheme. Scheme interfaces allow you to access the following aspects of Bash:
enable -f ~/.guix-profile/lib/bash/libguile-bash.so scmand then run
scm example.scm
.license:gpl3+
GNU 8sync (pronounced "eight-sync") is an asynchronous programming library for GNU Guile based on the actor model.
license:lgpl3+
Guile-Daemon is a small Guile program that loads your initial configuration file, and then reads and evaluates Guile expressions that you send to a FIFO file.
license:gpl3+
Guile Documentá is a command-line program and accompanying library to generate API documentation for GNU Guile projects.
license:public-domain
.env
filesThis package provides a simple Guile interface to .env
(or dotenv) files. It implements parsing of files and setting environment
variables from them.
license:gpl3+
Guile-DSV is a GNU Guile module for working with the delimiter-separated
values (DSV) data format. Guile-DSV supports the Unix-style DSV format and RFC 4180
style format. Also Guile-DSV includes a console program named dsv
that allows
to view and process DSV data, including such operations as delimiter change,
conversion from one DSV standard to another and printing the data as pseudographics
tables.
license:gpl3+
Fibers is a Guile library that implements a a lightweight concurrency facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is like a "goroutine" from the Go language: a lightweight thread-like abstraction. Systems built with Fibers can scale up to millions of concurrent fibers, tens of thousands of concurrent socket connections, and many parallel cores. The Fibers library also provides Concurrent ML-like channels for communication between fibers. Note that Fibers makes use of some Guile 2.1/2.2-specific features and is not available for Guile 2.0.
license:lgpl3+
Kracht provides helpful and convenient functionalities that can help you develop more comfortably in your Guile Scheme project. You can see it as a batteries-included addition to the (already great) standard library, complementing it, and helping developers write cleaner code.
license:lgpl3+
guile-filesystem
provides a set of utility functions,
that augment Guile's support for handling files and their names.
license:lgpl3+
This package provides extensible Guile bindings for the Sway window manager. It can be used to query Sway, assign keybindings and listen to events in Guile.
license:expat
This package provides Guile bindings for the taglib C library. It can be used to access and modify metadata for audio files.
license:gpl2+
Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various programming languages into a simple s-expression that can be converted to HTML (via SXML) or any other format for rendering.
license:lgpl3+
guile-sjson is a json reader/writer for Guile. It has a nice, simple s-expression based syntax.
license:lgpl3+
This library implements parts of the @uref{https://www.jsonrpc.org/specification,JSON-RPC specification}, allowing for calling methods on remote servers by exchanging JSON objects.
license:expat
This package provides a library (lsp-server) and an
executable guile-lsp-server
that can be used by LSP clients in
order to provide IDE functionality for Guile Scheme.
license:expat
Asynchronous Reliable Extensible Sleek RPC Server for Guile. It's based on nREPL protocol and can be used for programmable interactions with a running guile processes, for implementing REPLs, IDEs, test runners or other tools.
license:gpl3+
guile-custom-port overrides Guile's port modules to bring the custom ports from Guile 3.10 to previous versions.
license:lgpl3+
squee
is a Guile library for connecting to PostgreSQL databases
using Guile's foreign function interface.
license:lgpl3+
Guile-colorized provides you with a colorized REPL for GNU Guile.
license:gpl3+
This package provides purely functional data structures written in R6RS Scheme and compiled for Guile. It has been tested with Racket, Guile 2, Vicare Scheme and IronScheme. Right now it contains:
license:bsd-3
Guile-PG is a collection of modules for Guile allowing access to the PostgreSQL RDBMS from Scheme programs. This has been tested against PostgreSQL 10 through 13, but currently only works with Guile 1.4.x to 2.0.x.
license:gpl3+
This Guile library provides instrumentation code intended to be used with the Prometheus time series service. Counter, gauge and histogram metric types are supported.
license:gpl3+
This package provides an implementation of @dfn{AA trees}, a
self-balancing binary tree data structure, for Guile. It ensure O(log
n)
worst case performance for core operations. The module provides
non-mutating insert, delete, and search operations, with support for
convenient nested tree operations.
license:gpl3+
Guile port of racket-algorithms, a package containing useful algorithms borrowed from other programming languages).
license:gpl3+
This package provides a DSL for a number of @dfn{Amazon Web Services} (AWS) APIs, including EFS, EC2, Route53, and more. Guile AWS uses the Guile compiler tower to generate the DSL from AWS JSON specifications.
license:gpl3+
This package provides Guile bindings for the libmosquitto MQTT client library. The bindings are written in GOOPS, and the user can extend the client class by inheritance.
license:lgpl3+
This package provides a Guile programming interface to the ZeroMQ messaging library.
license:gpl3+
This package provides a Guile 2.x kernel for the Jupyter Notebook. It allows users to interact with the Guile REPL through Jupyter.
license:gpl3+
This package provides the functionality to query a SPARQL endpoint. Additionally, it provides an interface to write SPARQL queries using S-expressions.
license:gpl3+
This package provides a Guile library to communicate with a Debbugs bug tracker's SOAP service, such as https://bugs.gnu.org.
license:gpl3+
guile-email is a collection of email utilities implemented in pure guile. It supports parsing MIME (Multipurpose Internet Mail Extensions) compliant email messages and reading emails from the mbox format.
license:agpl3+
guile-newra (newra) wants to replace the current (3.0) Guile array system, which is almost entirely implemented in C. The new implementation should be at least as fast.
license:gpl3+
This package provides bindings for Newt, a programming library for color text mode, widget based user interfaces. The bindings are written in pure Scheme by using Guile’s foreign function interface.
license:gpl3+
This package provides Guile modules to access the @uref{https://docs.joinmastodon.org/api/, REST API of Mastodon}, a federated microblogging service.
license:gpl3+
This package provides bindings for GNU Parted library, a C library allowing disk partition tables creation and manipulation. The bindings are written in pure Scheme by using Guile's foreign function interface.
license:gpl3+
Guile-XOSD provides Guile bindings for libxosd
,
@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display
library}.
license:gpl3+
yaml-cpp
A module for GNU Guile to read and write YAML files. It works using
bindings to the yaml-cpp
C++ library.
license:gpl3+
guile-dbi is a library for Guile that provides a convenient interface to SQL databases. Database programming with guile-dbi is generic in that the same programming interface is presented regardless of which database system is used. It currently supports MySQL, Postgres and SQLite3.
license:gpl2+
guile-dbi is a library for Guile that provides a convenient interface to SQL databases. This package implements the interface for SQLite.
guile-dbi
is a library for Guile that provides a convenient
interface to SQL databases. This package implements the interface for
PostgreSQL.
guile-dbi
is a library for Guile that provides a
convenient interface to SQL databases. This package implements the interface
for MySQL.
license:gpl2+
This package provides a Scheme wrapper around liblmdb.so. Most names are the same as LMDB ones, except for prefix absence. Several conveniences are added on top:
call-with-env-and-txn
, call-with-cursor
, and
call-with-wrapped-cursor
helpers and respective with-
macros.
for-cursor
procedure for cursor iteration.
val
and stat
types.
set-compare!
and set-dupsort!
to configure entry
sorting.
Error signaling instead of integer return values.
license:gpl3+
Guile Config is a library providing a declarative approach to application configuration specification. The library provides clean configuration declaration forms, and processors that take care of: configuration file creation; configuration file parsing; command-line parameter parsing using getopt-long; basic GNU command-line parameter generation (--help, --usage, --version); automatic output generation for the above command-line parameters.
license:gpl3+
Hall is a command-line application and a set of Guile libraries that allow you to quickly create and publish Guile projects. It allows you to transparently support the GNU build system, manage a project hierarchy & provides tight coupling to Guix.
license:gpl3+
Guile-ICS is an iCalendar (RFC5545) and vCard (RFC6350) format parser library written in pure Scheme. The library can be used to read and write iCalendar/vCadr data and convert the data from/to various formats. The library is shipped with documentation in Info format and usage examples.
license:gpl3+
This package provides functions to generate Guix manifests interactively. It works by scanning an alist of package categories, to ask the user which package sets would they like to install from it.
license:gpl3+
Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some users and in some situations.
(list license:gpl3+ license:expat)
Guile-Udev provides GNU Guile bindings to libudev.
license:gpl3+
Sly is a 2D/3D game engine written in Guile Scheme. Sly features a functional reactive programming interface and live coding capabilities.
license:gpl3+
G-Golf (Gnome: (Guile Object Library for)) is a library for developing
modern applications in Guile Scheme. It comprises a direct binding to the
GObject Introspection API and higher-level functionality for importing Gnome
libraries and making GObject classes (and methods) available in Guile's
object-oriented programming system, GOOPS.
Note: Currently, when developing with G-Golf in guix shell
, there is
a @uref{https://bugs.gnu.org/75157, grafts bug in Guix}. To avoid it, use
Guix' --no-grafts
option. Guix packages that use wrap-program
are unaffected.
license:lgpl3+
G-Golf port of (a subset of) the upstream gtk4-demo
examples in
the gtk:bin
Guix package output. Run guix edit
g-golf-gtk-4-examples
for inspiration how to wrap G-Golf applications when
writing a Guix package.
G-Golf port of the upstream adwaita-1-demo
example in the
libadwaita
Guix package. It adds one simple hello-world example as
well. Run guix edit g-golf-adw-1-examples
for inspiration how to
wrap G-Golf applications when writing a Guix package.
G-Wrap is a tool and Guile library for generating function wrappers for inter-language calls. It currently only supports generating Guile wrappers for C functions. Given a definition of the types and prototypes for a given C interface, G-Wrap will automatically generate the C code that provides access to that interface and its types from the Scheme level.
license:lgpl2.1+
This package provides a complete Scheme implementation of miniAdapton, which implements the core functionality of the Adapton system for incremental computation (also known as self-adjusting computation). Like Adapton, miniAdapton allows programmers to safely combine mutation and memoization. miniAdapton is built on top of an even simpler system, microAdapton. Both miniAdapton and microAdapton are designed to be easy to understand, extend, and port to host languages other than Scheme.
license:expat
This package provides A Guile reader extension for `raw strings', it lets you write verbatim strings without having to escape double quotes.
license:public-domain
Guile-Reader is a simple framework for building readers for GNU Guile. The idea is to make it easy to build procedures that extend Guile’s read procedure. Readers supporting various syntax variants can easily be written, possibly by re-using existing “token readers” of a standard Scheme readers. For example, it is used to implement Skribilo’s R5RS-derived document syntax. Guile-Reader’s approach is similar to Common Lisp’s “read table”, but hopefully more powerful and flexible (for instance, one may instantiate as many readers as needed).
license:gpl3+
guile-ncurses provides Guile language bindings for the ncurses library.
license:lgpl3+
Guile-Lib is intended as an accumulation place for pure-scheme Guile modules, allowing for people to cooperate integrating their generic Guile modules into a coherent library. Think "a down-scaled, limited-scope CPAN for Guile". It provides the following modules:
license:gpl3+
This is a collection of iteration macros for Guile. They are inspired by
racket
's family of iterators. Specifically, the following iterators are
available:
for
for/map
for/c
for/fold
for/fold-right
for/folder
folder
license:asl2.0
MiniKanren is a relational programming extension to the Scheme programming Language, written as a smaller version of Kanren suitable for pedagogical purposes. It is featured in the book, The Reasoned Schemer, written by Dan Friedman, William Byrd, and Oleg Kiselyov. This is Ian Price's r6rs packaged version of miniKanren, which deviates slightly from miniKanren mainline. See http://minikanren.org/ for more on miniKanren generally.
license:expat
Irregex is an s-expression based alternative to your classic string-based regular expressions. It implements SRFI 115 and is deeply inspired by the SCSH regular expression system.
license:bsd-3
Haunt is a static site generator written in Guile Scheme. Haunt features a functional build system and an extensible interface for reading articles in any format.
license:gpl3+
Guile-redis provides a Scheme interface to the Redis key-value cache and store.
license:gpl3+
guile-commonmark is a library for parsing CommonMark, a fully specified variant of Markdown. The library is written in Guile Scheme and is designed to transform a CommonMark document to SXML. guile-commonmark tries to closely follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference is no support for parsing block and inline level HTML.
license:lgpl3+
guile-sundown is a library that renders Markdown as HTML. It supports many Markdown extensions including tables.
(list (license:non-copyleft file://LICENSES/LicenseRef-lesser-curl.txt cURL license without advertising clause.) license:lgpl2.1+ license:expat license:cc0)
GNU Mcron is a complete replacement for Vixie cron. It is used to run tasks on a schedule, such as every hour or every Monday. Mcron is written in Guile, so its configuration can be written in Scheme; the original cron format is also supported.
license:gpl3+
This package provides a simple SVG-based picture language for Guile. The picture values can directly be displayed in Geiser.
(list license:lgpl3+ license:gpl3+)
This is Emacs with a few settings that make working with Guile easier for people new to Emacs. Features include: CUA mode, Geiser, tool bar icons to evaluate Guile buffers, support for Guile's very own picture language, code completion, a simple mode line, etc.
license:gpl3+
This package provides a functional parser combinator library that supports backtracking and a small logical framework. The idea is to build up chunks that are memoized and there is no clear scanner/parser separation, chunks can be expressions as well as simple tokens.
license:lgpl2.0+
This is a serialization library for serializing objects like classes and objects, closures and structs. This currently does not support serializing continuations or delimited continuations.
license:lgpl2.0+
This package allows you to compile a Guile Python file to any target
from tree-il
.
license:lgpl2.0+
Guile Hoot is a WebAssembly compiler backend for GNU Guile and standalone WASM toolchain.
(list license:asl2.0 license:lgpl3+)
The (file-names)
module provides tools for manipulating file
names. The module was built on the idea that doing anything more than a
non-trivial modification of a file name string is a pain (making sure all
slashes are present and accounted for, resolving .
and ..
, etc).
Inevitably, you have to break the string up into chunks and operate on that
list of components. This module takes care of that for you.
license:lgpl3+
Guile-GI is a library for Guile that allows using GObject-based libraries, such as GTK+3. Its README comes with the disclaimer: This is pre-alpha code.
license:gpl3+
This package provides SRFI-89 optional positional and named parameters, which define* and lambda* special forms
license:gpl3+
This package provides an implementation of SRFI 128 for Guile. SRFI 128 defines comparators, which bundles a test type predicate, an equality predicate, an ordering predicate and a hash function into a single Scheme object. This can be used in the implementation of data structures. This package re-uses the SRFI sample implementation.
(list license:lgpl3+ license:isc)
This package provides a Guile implementation of @uref{https://srfi.schemers.org/srfi-133/srfi-133.html, SRFI-133}, a comprehensive library of vector operations.
license:expat
This package provides SRFI-145. This provides the means to denote the invalidity of certain code paths in a Scheme program.
license:gpl3+
This package provides an implementation of SRFI 146 for Guile. SRFI 146 defines datastructures that implement mappings (finite sets of associations consisting of a key and a value). Two types of mappings are defined: One using a comparator to define an order on the keys and another using a hash function on the keys. The datastructures and procedures are by default purely-functional. This package re-uses the SRFI sample implementation that is based on red-black trees and Hash Array Mapped Trie (HAMT).
(list license:lgpl3+ license:isc)
This package provides an implementation of SRFI 158 for Guile. SRFI 158 defines utility procedures that create, transform, and consume generators. It also defines procedures that return accumulators. It is implemented by wrapping the sample implementation in a thin Guile compatibility layer.
license:gpl3+
The (srfi-159)
module and its sub-modules implement the
formatting combinators specified by
@uref{https://srfi.schemers.org/srfi-159/srfi-159.html, SRFI-159}. These are
more expressive and flexible than the traditional format
procedure.
license:bsd-3
This library implements a JavaScript Object Notation (JSON) parser and printer. It also supports parsing JSON objects that may be bigger than memory with a streaming API.
license:expat
This SRFI defines two disjoint immutable container types known as Maybe and Either, both of which can contain objects collectively known as their payload. A Maybe object is either a Just object or the unique object Nothing (which has no payload); an Either object is either a Right object or a Left object. Maybe represents the concept of optional values; Either represents the concept of values which are either correct (Right) or errors (Left).
license:expat
This library provides a reference implementation for SRFI-197. This
SRFI defines a family of chain and nest pipeline operators, which can rewrite
nested expressions like (a b (c d (e f g)))
as a sequence of
operations: (chain g (e f _) (c d _) (a b _))
.
license:expat
This package provides an implementation of
@uref{https://srfi.schemers.org/srfi-232/srfi-232.html, SRFI-232}, which
describes curried
, a variant of lambda
that creates true curried
procedures which also behave just like ordinary Scheme procedures. They can
be applied to their arguments one by one, all at once, or anywhere in between,
without any novel syntax. curried
also supports nullary and variadic
procedures, and procedures created with it have predictable behavior when
applied to surplus arguments.
license:expat
Topological sorting is an algorithm that takes a graph consisting of nodes and other nodes that depend on them, forming a partial order, and returns a list representing a total ordering of the graph. If the graph is cyclic, the topological sort will fail. The procedure topological-sort returns three values. If sorting succeeds, the first value contains the result and the second and third are #false. If sorting fails, the result is #false and the second and third value may provide additional information about the error.
license:expat
This SRFI contains various procedures that accept and return procedures, as well as a few others, drawn from an earlier version of Chicken. Common Lisp has a few of them too, and more come from the Standard Prelude from Programming Praxis. Using these procedures helps to keep code terse and reduce the need for ad hoc lambdas.
license:expat
Emacsy is an embeddable Emacs-like library that uses GNU Guile as extension language. Emacsy can give a C program an Emacsy feel with keymaps, minibuffer, recordable macros, history, tab completion, major and minor modes, etc., and can also be used as a pure Guile library. It comes with a simple counter example using FreeGLUT and browser examples in C using Gtk+-3 and WebKitGtk.
license:gpl3+
Guile-JPEG is a Scheme library to parse JPEG image files and to perform geometrical transforms on JPEG images.
license:gpl3+
pdb.set_trace()
but for GuileThe (jtd)
module for Guile provides a procedure
jump-to-debugger
for escaping to the Guile REPL for the purpose of
debugging code.
license:lgpl2.1+
guile-png
is a GNU Guile library for working with the
PNG format. This library provides API for
reading and writing PNG data, as well as some graphic primitives and basic image
processing filters.
license:gpl3+
Nomad is a Emacs-like web browser that consists of a modular feature-set, fully programmable in Guile Scheme.
license:gpl3+
Guile-CV is a Computer Vision functional programming library for the Guile Scheme language. It is based on Vigra (Vision with Generic Algorithms), a C++ image processing and analysis library. Guile-CV contains bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is enriched with pure Guile Scheme algorithms, all accessible through a nice, clean and easy to use high level API.
license:gpl3+
This package provides Guile FFI bindings for CBLAS, the library of
linear algebra subprograms.
To use the bindings, import (ffi cblas)
. CBLAS will be loaded from the
default dynamic library path. There are up to three bindings for each
function: raw, typed, and functional.
license:lgpl3+
This package provides a Guile Scheme wrapper for libgsl.so
.
Implements
license:gpl3+
This is a minimal set of Guile FFI bindings for the FFTW
library's ‘guru interface’. It provides two functions: fftw-dft! rank
sign in out
and fftw-dft rank sign in
. These bindings being minimal,
there is no support for computing & reusing plans, or split r/i transforms, or
anything other than straight complex DFTs.
license:lgpl3+
This package provides an Automake test driver that can run SRFI 64 test suites. It gives Automake insight into the individual tests being run, resulting clearer and more specific output.
license:gpl3+
This package implements RFC 9562 UUIDs, and can generate versions 1 and 3-8 from that specification. It also provides parsing for UUIDs in standard hex-and-dash format of any variant and version. Conversion between binary and hex-and-dash string UUIDs is also included.
license:gpl3+
This Guile library provides tools for reading, comparing, and writing Semantic Versions. It also includes ranges in the style of the Node Package Manager (NPM).
license:gpl3+
The (hashing @dots{
)} modules implement cryptographic hash
functions in pure R6RS Scheme: CRC, HMAC, MD5, SHA-1, and SHA-2 (SHA-256,
SHA-512).
license:expat
This is an R6RS Scheme adaptation of the @uref{https://bford.info/packrat/, packrat parsing}. Packrat parsing is a memoizing, backtracking, recursive-descent parsing technique that runs in time and space linear in the size of the input text.
license:expat
AC/D-Bus is an implementation of the D-Bus wire protocol. D-Bus is an interprocess communication protocol popular on GNU/Linux systems to communicate with a variety of services. Originally designed for desktop environments, it is now used by programs like VLC media player, BlueZ, NetworkManager, Pulseaudio, systemd (including logind and resolved), Polkit, gnome-keyring, and many more.
license:expat
This package provides a procedure for converting strings into
URL-friendly slugs. A slug is a simplified version of a string, often used in
URLs, that contains only lowercase letters, digits, and hyphens. This package
is inspired by the slugify
function in the Django web framework. It is
useful for generating human-readable identifiers from arbitrary text.
license:gpl3+
This package provides tooling to write web applications in Guile, such as signed sessions, multipart message support, etc.
license:gpl3+
This is a web-driver, or Selenium 2, client. It's purpose is to automate
browsers, specifically for automatic web server testing. Chrome or Firefox can be
used as the automated browsers, or it can connect to arbitrary server providing
webdriver interface. The client implements most of the WebDriver
specification.
guile-web-driver-ng
also provides a proxy implemented as a Guile module. If
configured, the proxy can intercept and modify HTTP/HTTPS traffic (for example, add,
delete and replace HTTP headers) which is useful for Selenium WebDriver as it does
not provide a way to change the headers on its own.
license:gpl3+
Guile-Lens is a library implementing lenses in Guile. The library is currently a re-implementation of the lentes library for Clojure. Lenses provide composable procedures, which can be used to focus, apply functions over, or update a value in arbitrary data structures.
license:gpl3+
guile-xapian
provides Guile bindings for Xapian, a
search engine library. Xapian is a highly adaptable toolkit which allows
developers to easily add advanced indexing and search facilities to their own
applications. It has built-in support for several families of weighting
models and also supports a rich set of boolean query operators.
license:gpl2+
This package provides facilities for working with
.torrent
or metainfo files. Implements a bencode reader and writer
according to Bitorrent BEP003.
license:gpl3+
This package provides Guile bindings to the Tree-sitter parsing library.
license:gpl3+
This package provides a Guile library for @dfn{Internet Relay Chat} (IRC).
license:lgpl2.1+
Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.
license:lgpl3+
Guile Gemini is an implementation of the Gemini protocol in Guile Scheme, providing both client and server functionality. It uses GnuTLS to meet Gemini's TLS requirements, and Guile Fibers for concurrency.
license:lgpl3+
Guile RDF is an implementation of the RDF (Resource Description Framework) format defined by the W3C for GNU Guile. RDF structures include triples (facts with a subject, a predicate and an object), graphs which are sets of triples, and datasets, which are collections of graphs. RDF specifications include the specification of concrete syntaxes and of operations on graphs. This library implements some basic functionalities, such as parsing and producing turtle and nquads syntax, as well as manipulating graphs and datasets.
license:gpl3+
Guile JsonLD is an implementation of the JsonLD (Json for Linked Data) API defined by the W3C for GNU Guile. It allows you to express links between data, in a way that is very similar to WikiData or RDF for instance. An object can have relations (in the form of an IRI) that relates it to one or more objects or strings, represented by a Json object or an IRI.
license:gpl3+
This is an R6RS library for working with packed byte structures. It is similar to struct in Python or pack and unpack in Perl.
license:expat
This project is about the development of tools that relate to machine code and object formats; for all architectures. Here you'll find libraries for working with binary code: assembly, disassembly, instruction tables, object formats and related areas.
license:expat
This is an R6RS Scheme library that provides a reader with some extra features not found in the standard read procedure such as a compatible mode with support for other RnRS standards and a tolerant mode that continues on errors.
license:expat
This package provides bindings for Avahi. It allows programmers to use functionalities of the Avahi client library from Guile Scheme programs. Avahi itself is an implementation of multicast DNS (mDNS) and DNS Service Discovery (DNS-SD).
license:lgpl3+
guile-dns
is a DNS library written in pure Guile
Scheme.
license:gpl3+
guile-jwt is a JSON Web Token module for Guile. JSON Web Tokens are an open, industry standard (RFC 7519) method for representing claims securely between two parties. guile-jwt allows you to decode, verify and generate JWT. Supported algorithms: HS256, HS384, HS512.
license:gpl3+
This package provides Guile bindings to the libsodium cryptographic library which provides core cryptographic primitives needed to build higher-level tools.
license:gpl3+
Guile-ERIS is a Guile implementation of the Encoding for Robust Immutable Storage (ERIS). ERIS allows arbitrary content to be encoded into uniformly sized, encrypted blocks that can be reassembled using a short read-capability.
license:gpl3+
R7RS-small Scheme library for reading and writing @acronym{RSV, rows of string values} data format, a very simple binary format for storing tables of strings. It is a competitor for CSV (Comma Separated Values) and TSV (Tab Separated Values). Its main benefit is that the strings are represented as Unicode encoded as UTF-8, and the value and row separators are byte values that are never used in UTF-8, so the strings do not need any error prone escaping and thus can be written and read verbatim. The RSV format is specified in https://github.com/Stenway/RSV-Specification.
license:gpl3+
This project provides a pure Scheme implementation of Protocol Buffers, including parsing and code generation.
license:gpl3+
Guile Shapefile is a Guile library for reading shapefiles.
license:expat
This project provides Guile bindings to the DRMAA library version 1. DRMAA is a resource management library implemented by HPC cluster schedulers.
license:gpl3+
This package provides a simple yaml module for Guile using the ffi-helper from nyacc.
license:lgpl3+
Schmutz is a header-only library to declare Scheme bindings
for C++ code using a simple embedded DSL. Think of it as Boost.Python
or LuaBind
but for Scheme.
license:boost1.0
The Concise Binary Object Representation (CBOR), as specified by RFC 8949, is a binary data serialization format. CBOR is similar to JSON but serializes to binary which is smaller and faster to generate and parse. This package provides a Guile implementation of CBOR.
license:gpl3+
GNU Guile QR code generator that can create QR codes from text and binary data. The resulting QR codes can be rendered to ASCII art strings or to PNG images (using Guile-PNG API.)
(list license:gpl3+ license:expat)
Hygguile is a library that allows you to create cozy web user-interfaces using Guile Scheme, by defining an expressive @acronym{DSL, domain-specific language}, and by leveraging the power of S-expressions, SXML and TailwindCSS. The project aims to provide reusable, professional-looking and accessible web components, whose names resemble the HTML counterparts, thus easing the learning curve, and reducing the cognitive load.
license:lgpl3+
Guile-Quickcheck is a library for random testing of program properties inspired by ghc-quickcheck. You can use it to express properties, which functions should satisfy, as Scheme code and then check whether they hold in a large number of randomly generated test cases.
license:gpl3+
This package contains helper functions for working with file system locations.
license:agpl3+
Guile Netlink is a GNU Guile library providing an implementation of the netlink protocol. It provides a generic library for writing implementations of a netlink protocol, a low-level rtnetlink implementation that uses that library and a high-level API for network management that uses rtnetlink.
license:gpl3+
This package provides bindings to the GitLab Community Edition REST API as well as the @samp{gitlab-cli} command line tool for interacting with a GitLab instance.
license:gpl3
Guile-SMC is a state machine compiler that allows users to describe
finite state machines (FSMs) in Scheme in terms of transition tables. It is
capable to generate such transition tables from a
PlantUML state diagrams.
A transition table can be verified and checked for dead-ends and infinite
loops. Also Guile-SMC FSMs gather statistics when they run.
Guile-SMC comes with a Scheme program called smc
-- a state machine
compiler itself. It produces a Scheme code for an FSM from the PlantUML
format. This tool is meant to be called on a PlantUML file when a program
with a FSM is being built (for example, from a Makefile.)
license:gpl3
guile-ini
is a GNU Guile library for working with the
INI format. This library
provides API for reading and writing INI data.
license:gpl3
Fortran is great in expressing operations on multi-dimensional arrays of numbers. Scheme is great at expressing your coding thoughts. This project is an attempt to combine both into something useful.
license:asl2.0
Guile Knots is a collection of patterns and functionality that is useful when using Guile Fibers. This includes higher level concurrency utilities, support for timeouts and an alternative web server implementation.
license:gpl3+
guile-kolam
is a GraphQL implementation for Scheme. kolam
features a parser to parse and serialize GraphQL documents, a type system to
create GraphQL schemas, an execution engine to execute GraphQL queries, and a
HTTP handler to implement a HTTP GraphQL endpoint.
license:agpl3+
Provides bindings for GNOME's libnotify C library to Guile
license:gpl3+
Lokke intends to provide a full dialect of Clojure for Guile. It also consists of a set of Guile modules providing some of Clojure's functionality in two different guises.
(list license:lgpl2.1+ license:epl1.0)
guile-tap is a library for GNU Guile that implements a framework for specifying test cases that emit output that adheres to the Test Anything Protocol (TAP). It comes with an experimental harness (tap-harness).
license:bsd-2
To query and change settings of serial devices on POSIX systems, the termios API is used. GNU Guile doesn't have an interface for that built in. This module implements this interface by use of Guile's dynamic FFI.
license:bsd-2
guile-goblins
is the Guile version of
Spritely Goblins, a transactional,
distributed programming environment following object capability security
designs. Goblins is a general toolkit, and also the core layer of Spritely's
work to support healthy distributed networked communities. Goblins allows for
cooperation between networked programs in a mutually suspicious network
through OCapN, the Object Capability Network. This includes collaboration
across runtimes; for instance, programs written in the Guile and Racket
versions of Goblins are able to speak to each other.
license:asl2.0