PackageTrack

Go modules · #2516

github.com/moov-io/iso8583

v0.26.1moov-io/iso8583

Release timeline

207 releases since 2020
202120222023202420252026

Releases

  1. v0.26.2-0.20260826142753-e37da86d340a26 Aug 2026pre-release

    Nothing published for this version

  2. v0.26.2-0.20260825205837-a8ec4f849a6925 Aug 2026pre-release

    Nothing published for this version

  3. v0.26.2-0.20260813235143-17f15162ffff13 Aug 2026pre-release

    Nothing published for this version

  4. v0.26.113 Aug 2026
    Release notes

    What's Changed

    • fix(composite): return error on truncated unknown TLV value instead of panicking (#415) by @SAY-5 in #416
    • test(fuzz): add native Go fuzzers for Unpack/Pack and MessageScanner by @adamdecaf in #425
    • ci(fuzz): anchor -fuzz patterns to avoid multi-match failures by @adamdecaf in #428
    • fix(specs): register missing field types and encodings in the spec builder by @andresantoniuk in #430
    • fix(composite): bounds-check unknown TLV length in skip path by @SashaMIT in #427

    New Contributors

    Full Changelog: v0.26.0...v0.26.1

    Open source →
  5. v0.26.1-0.20260807203210-38361d20b31d7 Aug 2026pre-release

    Nothing published for this version

  6. v0.26.1-0.20260708231246-0683146d967b8 Jul 2026pre-release

    Nothing published for this version

  7. v0.26.1-0.20260608220115-45c6b37cb75d8 Jun 2026pre-release

    Nothing published for this version

  8. v0.26.010 Apr 2026
    Release notes

    What's Changed

    • fix: support TagSpec TLV fields in JSON export/import by @alovak in #408
    • feat: add YAML serialization/deserialization for message specs by @alovak in #409
    • feat: add support for re-marshaling unknown TLV tags in MarshalPath by @MassimilianoPoggiQonto in #412
    • feat: add MessageScanner for partial message parsing by @alovak in #413

    New Contributors

    Full Changelog: v0.25.3...v0.26.0

    Open source →
  9. v0.25.4-0.20260325210811-dbe9f2b728d925 Mar 2026pre-release

    Nothing published for this version

  10. v0.25.34 Mar 2026
    Release notes

    What's Changed

    • feat: add UnknownTags helper function to get skipped unknown tags by @alovak in #405

    Full Changelog: v0.25.2...v0.25.3

    Open source →
  11. v0.25.3-0.20260220120310-69c7ef14559120 Feb 2026pre-release

    Nothing published for this version

  12. v0.25.226 Jan 2026
    Release notes

    What's Changed

    • Support composites with optional repeating fields by @gyrolc in #398

    New Contributors

    Full Changelog: v0.25.1...v0.25.2

    Open source →
  13. v0.25.115 Dec 2025
    Release notes

    What's Changed

    • allow preserving unknown fields instead of discarding them by @alovak in #397

    Full Changelog: v0.25.0...v0.25.1

    Open source →
  14. v0.25.06 Dec 2025
    Release notes

    What's Changed

    • allow preserving unknown fields instead of discarding them by @alovak in #393
    • Fix getters by @alovak in #396

    ⚠️ Breaking Changes

    GetField() now returns nil for unset fields: GetField(id) returns nil if the field is not set or not defined in the specification, whereas previously it always returned a field instance.

    Migration:

    • Add nil checks before using the returned field
    • Or migrate to GetString(id) / GetBytes(id) which handle nil safely and return zero values for unset fields

    This change aligns with the new lazy field loading behavior and makes field presence checking explicit. It fixes the issue introduced in v0.24.0 where getting the value of a field that wasn't set was setting it.

    Full Changelog: v0.24.0...v0.25.0

    Open source →
  15. v0.24.1-0.20251202115857-bdf5ff34601d2 Dec 2025pre-release

    Nothing published for this version

  16. v0.24.02 Dec 2025
    Release notes

    What's Changed

    Lazy load field by @alovak in #392

    Performance Improvements

    Lazy field loading delivers significant performance gains:

    Operation Time Memory Allocations
    Marshal -27% -33% -10%
    Unpack -29% -28% -5%

    Fields are now created on-demand rather than pre-allocated from the specification. Only fields actually used in a message consume memory.

    In production scenarios where specs define many more fields than individual message types use, improvements across all metrics can exceed 80%.

    Features

    • Lazy field instantiation: Fields are created only when needed via internal getOrCreateField() and createField() methods
    • New Instantiator interface: Allows custom field types to define their own instantiation logic via NewInstance() method

    ⚠️ Breaking Changes

    1. Partial unpacking on failure: When unpacking fails on a field, that field is now created on the message/composite with its zero value, whereas previously it wasn't created at all. This allows partial data recovery but changes behavior for error handling code that checks field presence.

    2. Error message changes: Several error messages have been updated for clarity:

      • "field X does not exist" → "field X is not defined in the spec"
      • "no specification found" → "is not defined in the spec"
      • Error messages now include additional context
    3. Removed exported APIs:

      • CompositeWithSubfields interface
      • ConstructSubfields() method on Composite
      • CreateSubfield() function
      • CreateSubfields() function

    Full Changelog: v0.23.5...v0.24.0

    Open source →
  17. v0.23.527 Nov 2025
    Release notes

    What's Changed

    Full Changelog: v0.23.4...v0.23.5

    Open source →
  18. v0.23.5-0.20251021152053-eb817e9d75ea21 Oct 2025pre-release

    Nothing published for this version

  19. v0.23.5-0.20250807203721-706777ebe5237 Aug 2025pre-release

    Nothing published for this version

  20. v0.23.5-0.20250710025246-9bafc8578d4910 Jul 2025pre-release

    Nothing published for this version

  21. v0.23.430 Jun 2025
    Release notes

    What's Changed

    • fix: a binary field can marshal to a named string by @Inuart in #371
    • docs: clarify composite spec.Legth by @alovak in #360
    • docs: clarify usage DisableAutoExpand of the Bitmap field spec by @alovak in #368

    Full Changelog: v0.23.3...v0.23.4

    Open source →
  22. v0.23.4-0.20250607001446-42c34d8a39387 Jun 2025pre-release

    Nothing published for this version

  23. v0.23.36 Jun 2025
    Release notes

    What's Changed

    • docs: rework, reorg and improve readme by @alovak in #345
    • fix(deps): update module golang.org/x/text to v0.22.0 by @renovate in #347
    • fix: DecodeLength() for long values in variable length HEX field by @svz-ya in #348
    • chore(deps): update golang docker tag to v1.24 by @renovate in #349
    • docs: add guide for composite fields by @alovak in #352
    • fix(deps): update module golang.org/x/text to v0.23.0 by @renovate in #353
    • docs: Explain that subfields can get reordered when packing by @Inuart in #354
    • fix a tiny bug by @Viminice in #358
    • fix: unmarshaling to []byte for Binary and String fields by @alovak in #364
    • fix: resolve G115 integer overflow and exhaustive warnings by @alovak in #365
    • feat: add support for anonymous embedded structs in Marshal/Unmarshal by @lsadehaan in #361

    New Contributors

    Full Changelog: v0.23.2...v0.23.3

    Open source →
  24. v0.23.3-0.20250605174337-a63c5d71bede5 Jun 2025pre-release

    Nothing published for this version

  25. v0.23.3-0.20250605154242-e529380be41a5 Jun 2025pre-release

    Nothing published for this version

  26. v0.23.229 Jan 2025

    Nothing published for this version

  27. v0.23.127 Jan 2025

    Nothing published for this version

  28. v0.23.027 Jan 2025

    Nothing published for this version

  29. v0.22.4-0.20241123164333-9183e0ca4e9b23 Nov 2024pre-release

    Nothing published for this version

  30. v0.22.312 Nov 2024

    Nothing published for this version

  31. v0.22.3-0.20241112200227-60f53999184812 Nov 2024pre-release

    Nothing published for this version

  32. v0.22.3-0.20241108042605-1f2f3afe37f48 Nov 2024pre-release

    Nothing published for this version

  33. v0.22.228 Oct 2024

    Nothing published for this version

  34. v0.22.2-0.20241028154340-c352ad7741f728 Oct 2024pre-release

    Nothing published for this version

  35. v0.22.2-0.20241027145108-8c09e8283ff827 Oct 2024pre-release

    Nothing published for this version

  36. v0.22.2-0.20241002165148-b2065f8b88192 Oct 2024pre-release

    Nothing published for this version

  37. v0.22.19 Sept 2024

    Nothing published for this version

  38. v0.22.1-0.20240909193955-55330b0651049 Sept 2024pre-release

    Nothing published for this version

  39. v0.22.1-0.20240819140728-159e2941ab4119 Aug 2024pre-release

    Nothing published for this version

  40. v0.22.015 Jul 2024

    Nothing published for this version

  41. v0.21.4-0.20240715160329-dfac6bdd86a015 Jul 2024pre-release

    Nothing published for this version

  42. v0.21.4-0.20240712211002-edc9020f339812 Jul 2024pre-release

    Nothing published for this version

  43. v0.21.4-0.20240704073057-85239638962d4 Jul 2024pre-release

    Nothing published for this version

  44. v0.21.4-0.20240611091119-0e5c8d4c921b11 Jun 2024pre-release

    Nothing published for this version

  45. v0.21.311 Jun 2024

    Nothing published for this version

  46. v0.21.3-0.20240607210908-77c1c9cbef147 Jun 2024pre-release

    Nothing published for this version

  47. v0.21.3-0.20240506140531-a234a4a4118c6 May 2024pre-release

    Nothing published for this version

  48. v0.21.3-0.20240304150911-cd615f3967244 Mar 2024pre-release

    Nothing published for this version

  49. v0.21.3-0.20240216180924-0813da9c062116 Feb 2024pre-release

    Nothing published for this version

  50. v0.21.3-0.20240116134112-e656fa30fe5316 Jan 2024pre-release

    Nothing published for this version

  51. v0.21.212 Jan 2024

    Nothing published for this version

  52. v0.21.2-0.20240112225916-27feb74ecf2b12 Jan 2024pre-release

    Nothing published for this version

  53. v0.21.130 Nov 2023

    Nothing published for this version

  54. v0.21.030 Oct 2023

    Nothing published for this version

  55. v0.20.2-0.20231030175603-8f4cb18cf46e30 Oct 2023pre-release

    Nothing published for this version

  56. v0.20.2-0.20231010194914-add4df165bc510 Oct 2023pre-release

    Nothing published for this version

  57. v0.20.2-0.20231006185658-f42243f838946 Oct 2023pre-release

    Nothing published for this version

  58. v0.20.126 Sept 2023

    Nothing published for this version

  59. v0.20.026 Sept 2023

    Nothing published for this version

  60. v0.19.326 Sept 2023

    Nothing published for this version