Initial release: mcufont 0.1.0

Faithful Rust port of Maurycy's mcufont.h — a 5x5 monospace pixel
font (~350 bytes of bitmap data) covering A-Z, a-z, 0-9, and the
punctuation set - + . , ? ! : = '.

- no_std, forbid(unsafe_code), zero deps with default features.
- Public glyph tables (UPPER / LOWER / DIGITS / SYMBOLS), SYM_*
  index constants, and a glyph(c: char) lookup.
- Each glyph row is packed in bits 7..=3 MSB-first so the bytes
  are byte-for-byte compatible with embedded_graphics::ImageRaw.
- Optional `embedded-graphics` feature exposes MCU_FONT
  (MonoFont<'static>), FONT_DATA, and McuGlyphMapping for drop-in
  use with MonoTextStyle / Text on any DrawTarget (SSD1306 over
  I²C, ST7735, etc.).
- Per-category feature flags (upper / lower / numbers / symbols,
  all on by default) so users can drop unused glyphs from flash.

Licensed CC BY-NC-SA 4.0, inherited from the upstream font data.
An email is out to the upstream author asking for a permissive
software license (MIT / Apache-2.0); if granted, the crate will
be relicensed and a new version published.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
swaitsandClaude Opus 4.7 committed 2026-04-29 13:36:29 -06:00
commit 784658e5c6
7 files changed
+1184

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Pending
- **Relicense.** An email is out to the upstream author requesting a
permissive software license (MIT / Apache-2.0) on the original C
source. If granted, this crate will be relicensed and the next release
will reflect the new terms. Until then, CC BY-NC-SA 4.0 applies.
## [0.1.0] - 2026-04-29
### Added
- Initial release. Faithful Rust port of Maurycy's `mcufont.h`
(<https://maurycyz.com/projects/mcufont/>) — a 5×5 monospace pixel
font, ~350 bytes of bitmap data, covering `A–Z`, `a–z`, `0–9`, and
`- + . , ? ! : = '`.
- `no_std`, `forbid(unsafe_code)`, zero dependencies with default
features.
- Public glyph tables: `UPPER`, `LOWER`, `DIGITS`, `SYMBOLS`.
- `glyph(c: char) -> Option<&'static Glyph>` lookup function.
- `SYM_*` index constants for direct symbol-table access.
- Feature flags: `upper`, `lower`, `numbers`, `symbols` (all on by
default) — disable individually to save flash.
- Optional `embedded-graphics` feature exposing `eg::MCU_FONT`
(`MonoFont<'static>`), `eg::FONT_DATA`, and `eg::McuGlyphMapping` for
drop-in use with `MonoTextStyle` / `Text` on any `DrawTarget`
(SSD1306 over I²C, ST7735, etc.).
- Glyph bytes packed in bits 7..=3 (MSB-first), bits 2..=0 zero —
layout matches `embedded_graphics::image::ImageRaw` so the same data
serves both APIs.
### Licensed under
- CC BY-NC-SA 4.0 (inherited from the upstream font data; see
`LICENSE`). Non-commercial use only, ShareAlike. See README for
implications and the pending relicense note.