Guile Awesome List

Table of Contents

1. Manuals

2. Tutorials / Guides / Books

2.1. General GNU Guile / Scheme

2.2. Macros

2.2.1. CK macros

2.4. FFI - Foreign Function Interface

2.5. GUI development

3. Libraries

3.2. Audio

3.3. Browser

3.4. Bots

3.5. Chat

3.5.1. Chat clients

  1. IRC

3.5.2. Chat bots

  1. IRC

3.5.3. Protocols

  1. Matrix

3.6. Compression

3.7. Computer vision

  • GNU Guile-CV
    • website: https://www.gnu.org/software/guile-cv/
    • GNU software reference manual: https://www.gnu.org/software/guile-cv/manual/html_node/index.html
    • description:

      Guile-CV - Image Processing and Analysis in Guile - is a Computer Vision functional programming library for the Guile Scheme language.

      Guile-CV is based on Vigra (Vision with Generic Algorithms), enhanced with additional algorithms (Image Textures, Delineate, Reconstruction and many more), all accessible through a nice, clean and easy to use high level API.

      Guile-CV is natively multi-threaded, and takes advantage of multiple cores, using high-level and fine grained application-level parallelism constructs available in Guile, based on its support to POSIX threads.

      (https://www.gnu.org/software/guile-cv/index.html)

3.8. Configuration

3.9. Cryptography

3.10. Databases

3.10.1. Generic

3.10.2. Postgres

3.10.3. Sqlite

3.10.4. MySQL

3.10.5. Redis

3.10.6. CouchDB

3.10.7. Other

3.11. Data structures

3.11.1. Purely functional data structures (PFDs)

3.11.2. RDF

3.11.3. Lenses

3.11.4. Trees

3.11.5. Other

3.12. Debugging

3.13. Decentralization

3.14. Development environments

3.15. Device management

3.16. Distributed computing

3.17. E-Mail

3.18. Encodings

3.19. Event loop

3.20. FFI - Foreign Function Interface

3.21. File formats

3.21.2. YAML

3.21.3. CSV

3.21.4. XML

  • Guile's standard library SXML implementation
    • GNU software manual: https://www.gnu.org/software/guile/manual/html_node/SXML.html
    • Basically your templates become functions or macros.
    • The structure of your document is kept as Scheme data structures.
      • This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.
      • It enables pattern matching without resorting to things like regular expressions and similar shenanigans.

3.21.5. Markdown

3.21.6. Texinfo

3.21.7. JPEG

3.21.8. PNG

3.21.9. ICS

3.21.10. torrent

3.21.11. Shapefile

3.21.12. CBOR

  • guile-cbor
    • git repo: https://inqlab.net/git/guile-cbor.git/
    • description:

      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.

3.21.13. TAR

There is no standalone library for TAR files yet (2021-11-15), but there is code dealing with TAR files, which might be separatable into its own library:

3.21.15. Other

  • guile-mime
  • If the input is not input from users and is trustworthy, one might be able to leverage read/write of s-expressions instead of using other formats.

3.22. File system

3.23. Game development

3.24. Games

3.25. Generators

3.26. Genomics

3.27. Graphics

3.27.2. Design and CAD

  • libfive
    • website: https://libfive.com/
    • git repository: https://github.com/libfive/libfive
    • description:

      "libfive is a software library and set of tools for solid modeling, especially suited for parametric and procedural design. It is infrastructure for generative design, mass customization, and domain-specific CAD tools."

      https://libfive.com/ (2021-05-13)

      libfive itself is not written in GNU Guile, but interaction with it include using GNU Guile as a modelling language.

3.28. GUI development

3.29. Language

3.30. Logging

3.31. Machine Learning

3.32. Macros

3.33. Message Queues

3.34. Network programming

3.35. Parallelism

3.36. Parsing

3.36.1. Parser Combinators

3.36.2. Parser Generator

3.36.3. Other

3.36.4. XML parser

3.37. Plotting

3.38. Protocols

3.39. Serialization

3.40. SRFI (Scheme Request For Implementation) implementations

3.41. Strings

3.42. Syntax

3.43. Regular expressions

3.44. REPL (Read Eval Print Loop)

3.45. RPC (Remote Procedure Call)

3.46. Scientific computing and mathematics

3.46.1. Interaction with the Jupyter ecosystem

3.47. Search engine

3.48. Shell

3.49. TUI development

3.50. Testing

3.50.1. Integration testing

3.50.2. Unit testing

  1. TAP output

3.50.3. Other

3.51. Types

3.51.1. Static typing

3.52. Version control systems

3.53. Web Development

3.53.1. Web servers

3.53.2. Web clients

3.53.3. Web frameworks

3.53.4. Protocols

  1. Web sockets

3.53.5. Tooling / Additional libraries

  1. Authorization and authentication

3.53.6. Static website generators

3.53.7. Template engine

  • Guile's standard library SXML implementation
    • GNU software manual: https://www.gnu.org/software/guile/manual/html_node/SXML.html
    • Basically your templates become functions or macros.
    • The structure of your document is kept as Scheme data structures.
      • This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.
      • It enables pattern matching without resorting to things like regular expressions and similar shenanigans.

3.53.8. Interaction with services

3.53.9. Web application examples

3.53.10. Web drivers / Selenium

3.54. Window manager

3.55. Working with code

3.56. Other

3.57. Unsorted

4. Projects

5. Programming paradigm

5.1. "Object-oriented programming"

5.1.1. Prototype based

5.3. Functional programming

6. Programming language concepts

6.1. Pipeline / pipe / chain / threading

7. Programs

7.1. Finances

7.2. Window manager

7.3. Other

8. Tools

8.1. Notes

8.2. Editor support

8.3. Project management

8.3.1. Package managers

8.3.2. Time tracking

  • GNU Foliot
    • website: https://www.gnu.org/software/foliot/index.html
    • git repo: https://git.savannah.gnu.org/cgit/foliot.git
    • description:

      GNU Foliot is a small and easy to use time keeping application.

      It can be used in a single user mode or by small organizations. Starting with version 0.9.4, it can import other user's database, an essential feature for remote collaborators.

      The fields it handles are: a date, who, for whom, what, a duration, whether or not to be charged and a description.

      It includes, on the main application screen, a powerful dynamic filters criteria mechanism, which lets you visualize, work on and print a subset of your time keeping entries.

      A printing templates system allows you to (pre)define, reuse and hence quickly generate the pdf files and/or printed reports of your needs.

      A version which will let users export an active filter based subset of their time keeping entries is under work.

      (https://www.gnu.org/software/foliot/index.html)

8.4. Build tools

9. Blogs

10. Other

11. Other lists of Guile software

12. Videos / Talks / Presentations

This category is still fairly empty. Help filling it with interesting GNU Guile related videos, talks or presentations!

Date: 2021-08-14 Sa 00:00

Author: Zelphir Kaltstahl (help & input from Guile community)

Created: 2024-04-07 So 15:49

Validate