Parsing Tools and Libraries
Parsing converts text or structured input into data that software can interpret and work with. It helps applications handle formats such as dates, phone numbers, configuration files, and messages, while identifying valid values and, where possible, reporting malformed input. Parsing techniques range from simple pattern matching to grammar-based approaches for complex languages and data formats.
Open source parsing tools include libraries for specific data types, general-purpose grammar frameworks, and parsers for common serialization formats. When choosing one, consider the formats and edge cases it supports, its maturity and maintenance activity, licensing, runtime requirements, and fit with your language and existing systems. These tools are useful to developers building applications, data pipelines, integrations, and language-processing features.
4 repositories · updated July 30, 2026

pyparsing: A Python Library for Creating PEG Parsers
pyparsing is a Python library that offers an alternative to traditional lex/yacc or regular expressions for creating simple grammars. It allows developers to construct parsers directly in Python code, leveraging a Parsing Expression Grammar (PEG) approach. This library simplifies handling common parsing challenges like whitespace, quoted strings, and embedded comments, making text processing more intuitive.

python-phonenumbers: Google's libphonenumber Port for Python
`python-phonenumbers` is a robust Python port of Google's highly acclaimed `libphonenumber` library. It offers comprehensive functionality for parsing, validating, and formatting international phone numbers, making it an indispensable tool for global applications. This library ensures accurate and standardized phone number handling across diverse regions.

dateutil: Powerful Extensions for Python's Datetime Module
dateutil is a Python library that provides powerful extensions to the standard `datetime` module. It offers advanced features for parsing dates in almost any string format, computing relative deltas, and handling complex recurrence rules. This makes it an essential tool for developers working with time and date manipulations in Python.

hyperpb-go: Ultra-Fast Dynamic Protobuf Parsing in Go
hyperpb-go is a highly optimized dynamic message library for Protobuf in Go, designed as a drop-in replacement for `protobuf-go`'s `dynamicpb` solution. It offers significantly faster parsing, beating `dynamicpb` by 10x and often outperforming generated code by 2-3x. This makes it ideal for read-only workloads requiring high performance with dynamic Protobuf messages.