Awesome Gleam
For a full list of packages check out the Gleam package index.
Have a Gleam project to share with the world? Make a pull request and add it to the list.
Looking for something to build? Check out the suggestions list.
Libraries
Ansi
- dahlia-lib/dahlia - a simple text formatting package, inspired by the game Minecraft.
- Willyboar/colours - a Library for adding colours in Terminal
CLI
- tynanbe/shellout - A Gleam library for cross-platform shell operations.
- tanklesxl/glint - Gleam command line argument parsing with basic flag support.
Cryptography
- gleam-experiments/crypto - A Gleam library for the BEAM cryptography functions.
Databases
- massivefermion/gleam_mongo - A MongoDB driver for Gleam.
- gleam-experiments/pgo - Use PostgreSQL databases with PGO.
- lpil/sqlight - Use SQLite databases with esqlite.
Data structures
Libraries that define generic data structures for use in Gleam projects.
- gleam-lang/bitwise - Bitwise operations on integers.
- gleam-lang/stdlib - Core data structures and types for Gleam.
- massivefermion/ranger - Create ranges over any type!
Date and Time
Libraries for handling date and time
- massivefermion/birl - Date and Time handling for Gleam
Libraries for sending email.
- lpil/gleam_sendgrid - A client for the SendGrid transactional email API.
- lpil/zeptomail - A client for the ZeptoMail transactional email API.
Erlang/OTP
Libraries for working with Erlang and OTP.
- gleam-lang/gleam_erlang - Bindings to common Erlang/OTP types and functions.
- gleam-lang/otp - Write fault tolerant multicore programs with Erlang/OTP.
- midas-framework/beam - Interoperating with specific functionality in the Erlang runtime (BEAM).
- gleam-experiments/otp_code - Work with Erlang code at runtime.
Error handling
Libraries for working with errors and computations that can fail.
- gleam-experiments/snag - A boilerplate-free ad-hoc error type.
File IO
- gleam-lang/erlang - Gleam's Erlang library contains a module for working with files and directories.
- bcpeinhardt/simplifile - Simple file operations for Gleam that work on all targets (Erlang/Node/Deno)
Generators
- mrdimosthenis/minigen - A library for generating random data in the Erlang ecosystem, written in Gleam.
- massivefermion/blah - fake data generation for gleam.
HTTP
- gleam-lang/http - Types and functions for HTTP clients and servers!
HTTP clients
Libraries for making HTTP requests.
- gleam-lang/hackney - Bindings to Hackney, the simple Erlang HTTP client.
- gleam-lang/httpc - Bindings to Erlang's built in HTTP client, httpc.
- cobbinma/gleamql - A simple GraphQL client.
- Nicd/finch_gleam - Bindings to the Finch Elixir HTTP client.
HTTP servers
Libraries for serving traffic over HTTP.
- gleam-lang/cowboy - A Gleam HTTP service adapter for the Cowboy web server.
- gleam-lang/elli - A Gleam HTTP service adapter for the Elli web server.
- gleam-lang/plug - A Gleam HTTP service adapter for the Plug web application interface.
- megapctr/gleam_cors - A CORS middleware for Gleam.
- rawhat/mist - A pure Gleam HTTP server with WebSocket support
JSON
- gleam-lang/json - Work with JSON in Gleam.
Language Developement
- lpil/glance - A Gleam source code parser, in Gleam!
- DanielleMaywood/glexer - Gleam lexer implemented in Gleam!
- Willyboar/glove - A library to generate QBE IR code
Logging
- defgenx/glog - A Gleam implementation of an Erlang logger inspired by the Logrus API.
- johnbjrk/glimt - A Gleam logging library with support for custom dispatchers/serializers.
Machine learning
- mrdimosthenis/gleam_synapses - A lightweight library for neural networks.
- mrdimosthenis/emel - A simple and functional machine learning library for the Erlang ecosystem
Mimetypes
- davecaos/benetnasch - Benetnasch a mimetypes library for Gleam.
Parsing
Libraries for parsing different kinds of data.
- delucks/pathlib - Manipulate Unix-style filesystem paths.
- sporto/gleam_codec - Build codecs (encode and decode) to transform data structures between Gleam and Elixir.
- hayleigh-dot-dev/gleam-nibble - A string parsing library heavily inspired by elm/parser.
- sporto/gleam_qs - Parse and work with query strings.
Protocols
- bwireman/gleam_pb - Protobuf support for Gleam.
- massivefermion/gleam_bson - BSON encoder and decoder written in Gleam.
Science
- nicklasxyz/gleam_stats - A Gleam mathematics and statistics library that is JavaScript and Erlang compatible.
- tynanbe/argamak - A tensor library for Gleam's Erlang and JavaScript targets.
TCP/SSL
- rawhat/glisten - A pure Gleam TCP/SSL server library
Templating
Libraries for rendering strings from templates.
- gleam-experiments/bbmustache - Gleam bindings to the bbmustache templating library.
- michaeljones/matcha - Templating system where the templates are transpiled to Gleam modules.
- hayleigh-dot-dev/gleam-lustre - A framework for building create web apps β powered by Gleam and React.
- Nicd/glemplate - A simplistic Gleam template engine.
Testing
Projects for testing Gleam code.
- lpil/gleeunit - Gleam bindings to the Erlang EUnit test framework.
- inoas/glacier - Gleam incremental interactive unit testing.
Text and numbers
Libraries for parsing and manipulating text and numbers.
- greggreg/pretty_print - An implementation of Christian Lindig's "Strictly Pretty" pretty printing algorithm.
- rvcas/ids - A library for generating unique ids such as a cuid or UUID.
- sporto/gleam_string_builder - A library for building and formatting strings.
- defgenx/gxid - A library for generating xids
- johnbjrk/gap - A library for comparing strings/lists, creating structured diffs and visualizing the differences
- Nicd/glentities - HTML entity encoding/decoding.
Validation
- sporto/gleam-validator - A library for validating custom types.
Websockets
- lpil/nerf - Gleam bindings to gun, the Erlang HTTP/1.1, HTTP/2 and Websocket client.
Templates
Serverless
- nicklasxyz/gleam_openfaas - Gleam function templates to be used with the serverless framework OpenFaaS.
- nicklasxyz/gleam_openwhisk - Gleam function templates to be used with the serverless framework OpenWhisk.
Projects
Compilers
Compilers for Gleam and compilers written in Gleam.
- gleam-lang/gleam - The Gleam compiler.
- gleam-lang/example-lisp-interpreter - A toy Lisp interpreter in Gleam.
Programming Challenges
- tanklesxl/gladvent - An
Advent of Code
runner for Gleam, targeting Erlang.
Web applications
Web applications written in Gleam.
- gleam-lang/example-echo-server - An example Gleam web application.
- greggreg/gleam_todo - A serverside only implementation of Todo MVC written in Gleam!
- QuinnWilton/gleam-chip8 - A CHIP-8 emulator built with Gleam and Phoenix LiveView, playable here.
- toranb/elixir-gleam-match - A game built with Gleam and Phoenix LiveView.
- rawhat/spades - A multiplayer card game with a Gleam backend and React front-end
Tools
- tynanbe/rad - A flexible task runner companion for the Gleam build manager.
- inoas/glychee - A simple Gleam benchmark runner which wraps Benchee for the heavy lifting.
Editor support
- gleam-lang/gleam.vim - Gleam support for Vim/Neovim.
- gleam-lang/gleam-mode - An emacs major mode for the Gleam programming language.
- gleam-lang/vscode-gleam - Gleam support for VS Code.
- digitalcora/sublime-text-gleam - Gleam support for Sublime Text.
- sbdchd/neoformat - A Vim/Neovim plugin for formatting code with support for
gleam format
. - itsgreggreg/language-gleam - Gleam language support in Atom.
- DannyLettuce/gleam_gedit - Gleam syntax support for Gedit (and other GtkSourceView editors).
Resources
Websites
Websites with Gleam related content.
- gleam.run - Gleam's website and introductory guide
Courses
- Exercism's Gleam track - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
Talks
- Introduction to Gleam - Harry Bairstow
- Distributed music programming with Gleam, BEAM, and the Web Audio API - Hayleigh Thompson
- I learned Gleam in a week. Here's how it went - Theo Harris
Social Media
- #gleamlang hashtag
- @gleamlang - The official twitter account.
- @louispilfold - The creator of Gleam.