# Documentation ## Introduction As the name suggests, p2sh is an easy-to-learn, powerful programming language designed for packet processing. Its elegant syntax and dynamic typing, combined with its interpreted nature, make it an ideal language for developing tools and utilities intended for effective packet processing. It offers efficient high-level data structures that facilitate the rapid and straightforward creation of packet processing utilities. Often, domain-specific language features are best represented by operators and functions intrinsic to the language rather than by library functions, and this philosophy aligns with the design of this language. This language amalgamates ideas inspired by various programming languages. It embraces the dynamic simplicity found in languages like Python, incorporates modern features such as match expressions from Rust, and integrates functional aspects like closures. In this language, both functions and packet objects are treated as first-class citizens. ## Reference and tutorial This is a work in progress, with additional features tailored for packet processing yet to be incorporated. For a brief overview of the language's features, you can find a quick walkthrough here. - [Tutorial](./tutorial) - [Language Refrerence](./language) The language reference offers a more formal introduction to the supported features. The tutorial provides hands-on examples.