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.
This package contain a simple passphrase generator using the Diceware method. The concept is simple, roll five dice, combine the numbers from each die into a key and look up the word. Rinse and repeat until you are satisfied with the passphrase.
This package does not ship with any word lists, see the home page for information on where to fetch them.
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.
Guile-Cairo wraps the Cairo graphics library for Guile Scheme. Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API stable, providing a firm base on which to do graphics work. Finally, and importantly, it is pleasant to use. You get a powerful and well-maintained graphics library with all of the benefits of Scheme: memory management, exceptions, macros, and a dynamic programming environment.
Scheme lacks a flexible way to create and apply curried procedures. This SRFI 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.
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).
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).
This package provides an implementation of 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.
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).
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.
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.
Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than the un-checked one. Unfortunately, Scheme does not have many (type-)checking primitives out of the box. This SRFI provides some, with the aim of allowing more performant and correct code with minimum effort on the user side. Both (manual) argument checking/validation (check-arg) and return value(s) (values-checked) checking/coercion are provided. Syntax sugar like lambda-checked and define-checked is added on top.
Pre-built Guile for bootstrapping purposes.
Guile Shapefile is a Guile library for reading shapefiles.
Provides bindings for GNOME's libnotify C library to Guile
Guile-colorized provides you with a colorized REPL for GNU Guile.
Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.
Guile Hoot is a WebAssembly compiler backend for GNU Guile and standalone WASM toolchain.
Guile-OpenGL is a library for Guile that provides bindings to the OpenGL graphics API.
This package allows you to compile a Guile Python file to any target from tree-il
.
This package provides an implementation of ActivityStreams and ActivityPub in Guile. It includes a full (currently demo) web server.
guile-dbi
is a library for Guile that provides a convenient interface to SQL databases. This package implements the interface for MySQL.
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).
This package provides Guile bindings to GnuTLS, a library implementation the TLS protocol. It supersedes the Guile bindings that were formerly provided as part of GnuTLS.