Welcome to ransack
ransack is a modern, extensible language for manipulation with structured data.
Structured data — like JSON, YAML, TOML and domain-specific formats such as IDEA — form the backbone of many modern applications. These formats appear in configuration files, security logs, telemetry systems, and beyond.
ransack was designed to meet the increasing need for a robust and expressive language to query, filter, and inspect structured data. Whether used in Python code, as part of a log analysis tool, or as a compiler frontend for other systems, ransack provides a flexible foundation.
Why ransack?
ransack is a new implementation and improvement over existing libraries like Pynspect, which was widely used in security monitoring systems like NEMEA and Mentat. Compared to older tools, ransack:
supports user-defined variables
enables multi-argument functions
is extensible and modular
supports multiple backends (e.g., Python evaluation, SQL translation)
offers a clean internal architecture for future enhancements
Key features
a simple and expressive syntax for filters and conditions
support for context-aware variables and data scoping
predefined functions
support for IPv4/IPv6, datetimes, string and list manipulation
safe and maintainable implementation using Lark for parsing
Get started
New to ransack? See the Quickstart guide.
Contents: