TZif v1.0.0: Finally! IANA Timezone Database Parser and Query Engine for Ada 2022!

:tada: Thrilled to announce TZif v1.0.0 was published to Alire today and should be available soon! :tada:

TZif delivers trusted IANA-compiled timezone access and querying for Ada 2022! Built on principles of domain-driven design, clean & hexagonal architecture, and Ada 2022 contracts, TZif brings the best practices of modern functional programming languages to the Ada ecosystem.

:building_construction: Battle-Tested – 252 passing tests prove it’s ready for production
:sparkles: Zero Exceptions – Pure functional error handling with Result monads means no runtime surprises
:bullseye: Type-Safe – Private value objects with validated constructors catch errors at compile time
:counterclockwise_arrows_button: Railway-Oriented – Elegant error propagation that makes your code cleaner and safer
:package: Cache-Ready – JSON export/import for lightning-fast startup times
:globe_showing_europe_africa: Cross-Platform – Works seamlessly on Linux, macOS, BSD, and Windows (partial, full v1.1.0)

13 working examples included to get you started in minutes!

ada #AdaProgramming #FunctionalProgramming #OpenSource alire #SoftwareEngineering #TypeSafety

5 Likes
   else
      Error : constant TZif.Domain.Error.Error_Type := Error_Info(Zone_Id_Result);
      Put_Line("Error: " & To_String(Error.Message));
   end if;

This is not Ada!

Strange that you use functions for side effecting things, such as opening files. That would prevent further adoption of spark.

Thank you for pointing out the issue! My work doesn’t require Spark compliance, so I hadn’t considered it. I am thinking about how I want to meet this requirement and will publish the updated solution in a few days.

Thanks,

Mike