glqr

gleam add glqr
Display QR Code
import gleam/io
import glqr as qr
pub fn main() -> Nil {
let assert Ok(code) =
qr.new("HELLO WORLD")
|> qr.generate()
code
|> qr.to_printable()
|> io.println() // YOU CANT USE ECHO AS IT PRESERVES THE NEWLINE
}
Config Options
import gleam/io
import glqr as qr
pub fn main() -> Nil {
let assert Ok(code) =
qr.new("HELLO WORLD")
|> qr.error_correction(qr.L)
|> qr.min_version(10)
|> qr.generate()
code
|> qr.to_printable()
|> io.println() // YOU CANT USE ECHO AS IT PRESERVES THE NEWLINE
}
Save SVG
import glqr as qr
import simplifile
pub fn main() -> Nil {
let assert Ok(code) =
qr.new("HELLO WORLD")
|> qr.generate()
let svg =
code
|> qr.to_svg()
let assert Ok(_) = simplifile.write("output.svg", svg)
Nil
}
Simple Lustre Example
import gleam/int
import glqr
import lustre
import lustre/attribute
import lustre/element
fn render_qr(value: String, size: Int) {
let assert Ok(matrix) =
glqr.new(value)
|> glqr.generate()
let svg = glqr.to_svg(matrix)
lustre.element(element.unsafe_raw_html(
"",
"div",
[attribute.style("max-width", int.to_string(size) <> "px")],
svg,
))
}
pub fn main() {
let app = render_qr("https://github.com/lustre-labs/lustre", 150)
let assert Ok(_) = lustre.start(app, "#app", Nil)
Nil
}
Further documentation can be found at https://hexdocs.pm/glqr.
Development
gleam run # Run the project
gleam test # Run the tests
TODO
References
Thonky’s QR Code Tutorial
IODevs elixir qr code library
SiliconJungles elixir qr code library
Nayuki QR Code Step by Step
Gears BitArray Blog Post