list.md 84 KB

Table of Contents

  1. Manuals
  2. Tutorials / Guides / Books
    1. General GNU Guile / Scheme
    2. Macros
      1. CK macros
    3. Monads
    4. FFI - Foreign Function Interface
    5. GUI development
  3. Libraries
    1. Async
    2. Audio
    3. Browser
    4. Bots
    5. Chat
      1. Chat clients
      2. Chat bots
      3. Protocols
    6. Compression
    7. Computer vision
    8. Configuration
    9. Cryptography
    10. Databases
      1. Generic
      2. Postgres
      3. Sqlite
      4. MySQL
      5. Redis
      6. CouchDB
      7. Other
    11. Data structures
      1. Purely functional data structures (PFDs)
      2. RDF
      3. Lenses
      4. Trees
      5. Other
    12. Debugging
    13. Decentralization
    14. Development environments
    15. Device management
    16. Distributed computing
    17. E-Mail
    18. Encodings
    19. Event loop
    20. FFI - Foreign Function Interface
    21. File formats
      1. JSON
      2. YAML
      3. CSV
      4. XML
      5. Markdown
      6. Texinfo
      7. JPEG
      8. PNG
      9. ICS
      10. torrent
      11. Shapefile
      12. CBOR
      13. TAR
      14. INI
      15. Other
    22. File system
    23. Game development
    24. Games
    25. Generators
    26. Genomics
    27. Graphics
      1. Image processing
      2. Design and CAD
    28. GUI development
    29. Language
    30. Logging
    31. Machine Learning
    32. Macros
    33. Message Queues
    34. Network programming
    35. Parallelism
    36. Parsing
      1. Parser Combinators
      2. Parser Generator
      3. Other
      4. XML parser
    37. Plotting
    38. Protocols
    39. Serialization
    40. SRFI (Scheme Request For Implementation) implementations
    41. Strings
    42. Syntax
    43. Regular expressions
    44. REPL (Read Eval Print Loop)
    45. RPC (Remote Procedure Call)
    46. Scientific computing and mathematics
      1. Interaction with the Jupyter ecosystem
    47. Search engine
    48. Shell
    49. TUI development
    50. Testing
      1. Integration testing
      2. Unit testing
      3. Other
    51. Types
      1. Static typing
    52. Version control systems
    53. Web Development
      1. Web servers
      2. Web clients
      3. Web frameworks
      4. Protocols
      5. Tooling / Additional libraries
      6. Static website generators
      7. Template engine
      8. Interaction with services
      9. Web application examples
      10. Web drivers / Selenium
    54. Window manager
    55. Working with code
    56. Other
    57. Unsorted
  4. Projects
  5. Programming paradigm
    1. "Object-oriented programming"
      1. Prototype based
    2. Relational programming
    3. Functional programming
  6. Programming language concepts
    1. Pipeline / pipe / chain / threading
    2. State Machines
  7. Programs
    1. Finances
    2. Window manager
    3. Other
  8. Tools
    1. Notes
    2. Editor support
    3. Project management
      1. Package managers
      2. Time tracking
    4. Build tools
  9. Blogs
  10. Other
  11. Other lists of Guile software
  12. Videos / Talks / Presentations

Manuals

Tutorials / Guides / Books

General GNU Guile / Scheme

Macros

CK macros

Monads

FFI - Foreign Function Interface

GUI development

Libraries

Async

Audio

Browser

Bots

Chat

Chat clients

  1. IRC

Chat bots

  1. IRC

Protocols

  1. Matrix

Compression

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)

Configuration

Cryptography

Databases

Generic

Postgres

Sqlite

MySQL

Redis

CouchDB

Other

Data structures

Purely functional data structures (PFDs)

RDF

Lenses

Trees

Other

Debugging

Decentralization

Development environments

Device management

Distributed computing

E-Mail

Encodings

Event loop

FFI - Foreign Function Interface

File formats

JSON

YAML

CSV

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.

Markdown

Texinfo

JPEG

PNG

ICS

torrent

Shapefile

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.

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:

INI

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.

File system

Game development

Games

Generators

Genomics

Graphics

Image processing

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.

GUI development

Language

Logging

Machine Learning

Macros

Message Queues

Network programming

Parallelism

Parsing

Parser Combinators

Parser Generator

Other

XML parser

Plotting

Protocols

Serialization

SRFI (Scheme Request For Implementation) implementations

Strings

Syntax

Regular expressions

REPL (Read Eval Print Loop)

RPC (Remote Procedure Call)

Scientific computing and mathematics

Interaction with the Jupyter ecosystem

Search engine

Shell

TUI development

Testing

Integration testing

Unit testing

  1. TAP output

Other

Types

Static typing

Version control systems

Web Development

Web servers

Web clients

Web frameworks

Protocols

  1. Web sockets

Tooling / Additional libraries

  1. Authorization and authentication

Static website generators

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.

Interaction with services

Web application examples

Web drivers / Selenium

Window manager

Working with code

Other

Unsorted

Projects

Programming paradigm

"Object-oriented programming"

Prototype based

Relational programming

Functional programming

Programming language concepts

Pipeline / pipe / chain / threading

State Machines

Programs

Finances

Window manager

Other

Tools

Notes

Editor support

Project management

Package managers

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)

Build tools

Blogs

Other

Other lists of Guile software

Videos / Talks / Presentations

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