Welcome to Punch language javadoc documentation.

Punch is a java compatible language that allows you to manipulate Json documents using a straightforward and natural syntax. For example writing:

[user][name] = "bob";
Generates the following Json document:
{ "user" : { "name" : "bob" }}
Punch offers three groups of features.

First, its core constructs allows you to manipulate Json documents, through a new basic type 'Tuple', and to program loops or conditional. Think of the Tuple type as the java 'String' type, whose purpose is to deal with Json documents.

Second, the Punch library brings in a number of higher level operators such as the grok, key-value operators, key or interval lookup operators to perform more complex transformation.

Last, using punch you write punchlets, deployed in a punchlet container (typically Storm), and you then benefit from additional goodies. In particular your punchlet is injected with useful resources such as Json documents, property or plain configuration files. The lifecycle of a punchlet is straightforward, it is created by the container, then activated, the execute for each traversing document.

Where to go from here :

  • Go to the org.thales.punch.libraries.punchlang.api package for understanding the core punch capabilities.
  • Go to the org.thales.punch.libraries.punchlang.operator package for understanding the core punch capabilities.
  • Check the samples provided, and play with the punchplatform-punch.sh tool.
Packages 
Package Description
org.punch.json.mapper  
org.thales.punch.libraries.punchlang.api
Punch package documentation.
org.thales.punch.libraries.punchlang.impl  
org.thales.punch.libraries.punchlang.json  
org.thales.punch.libraries.punchlang.mapping.api  
org.thales.punch.libraries.punchlang.mapping.impl  
org.thales.punch.libraries.punchlang.mapping.tools  
org.thales.punch.libraries.punchlang.operator
Punch language operators.
org.thales.punch.libraries.punchlang.resource  
org.thales.punch.libraries.punchlang.resource.builder  
org.thales.punch.libraries.punchlang.resource.decoders  
org.thales.punch.libraries.punchlang.resource.tuple  
org.thales.punch.punchlang.util