From 6a716fc30da83b27a73840e674c0d5bc6c54f198 Mon Sep 17 00:00:00 2001 From: mark Date: Thu, 6 Nov 2025 12:01:05 +0000 Subject: [PATCH 1/2] Add a GEMINI.md file for optimized AI pair programming --- GEMINI.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 GEMINI.md diff --git a/GEMINI.md b/GEMINI.md new file mode 100644 index 0000000..ac134e2 --- /dev/null +++ b/GEMINI.md @@ -0,0 +1,34 @@ +# Project Overview + +This project is a Dart package named `base32_codec`. It provides a flexible and efficient way to encode and decode Base32 data, following the conventions of `dart:convert`. The package is written in pure Dart and has no platform-specific dependencies. + +## Key Features + +* **Multiple Base32 Variants:** Supports three popular Base32 alphabets: + * RFC 4648 (the standard) + * RFC 4648 "Hex" + * Crockford's Base32 +* **Stream-Based Conversion:** The API is compatible with Dart's `Stream` and `Codec` interfaces, making it suitable for processing large data sets without loading everything into memory. +* **Synchronous Conversion:** For smaller data, the library provides simple `encode` and `decode` methods. + +# Building and Running + +This is a Dart library, so there is no main executable to run. However, you can run the tests to verify its functionality. + +## Running Tests + +The project uses the `test` package for testing. To run the tests, use the following command: + +```bash +dart test +``` + +# Development Conventions + +## Code Style + +The project follows the standard Dart and Flutter linting rules, as defined in the `analysis_options.yaml` file. The `lints` package is used to enforce these rules. + +## Testing + +The project has a comprehensive test suite in the `test` directory. The tests cover all three Base32 variants and include test vectors from RFC 4648 to ensure correctness. The tests also cover the stream-based (chunked) conversion logic. From 413fb10e7a4698c64458cffcba044c83f0f5fa4d Mon Sep 17 00:00:00 2001 From: mark-dropbear <76698672+mark-dropbear@users.noreply.github.com> Date: Thu, 6 Nov 2025 12:03:53 +0000 Subject: [PATCH 2/2] Update GEMINI.md Add new references Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- GEMINI.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GEMINI.md b/GEMINI.md index ac134e2..2816e5a 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -5,9 +5,9 @@ This project is a Dart package named `base32_codec`. It provides a flexible and ## Key Features * **Multiple Base32 Variants:** Supports three popular Base32 alphabets: - * RFC 4648 (the standard) - * RFC 4648 "Hex" - * Crockford's Base32 + * [RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648) (the standard) + * [RFC 4648 "Hex"](https://datatracker.ietf.org/doc/html/rfc4648#section-7) + * [Crockford's Base32](http://www.crockford.com/base32.html) * **Stream-Based Conversion:** The API is compatible with Dart's `Stream` and `Codec` interfaces, making it suitable for processing large data sets without loading everything into memory. * **Synchronous Conversion:** For smaller data, the library provides simple `encode` and `decode` methods.