JMESPath Libraries

The JMESPath specification is implemented in various languages. Each list below shows JMESPath libraries as well as the compliance level. The compliance level is based on which compliance tests the library can pass.

JMESPath Org Implementations

These libraries are the language implementations that are part of the JMESPath Org:

Language

Name

Compliance Level

Python

jmespath.py

Fully compliant

Go

go-jmespath

Fully compliant

Lua

jmespath.lua

Fully compliant

Javascript

jmespath.js

Fully compliant

PHP

jmespath.php

Fully compliant

Ruby

jmespath.rb

Fully compliant

Rust

jmespath.rs

Fully compliant

JMESPath Tools

Below are miscellaneous tools maintained by the JMESPath org:

Tool

Description

jmespath.terminal

Provides a JMESPath interactive terminal that you can use to evaluate JMESpath expressions as you type. The README in the github repo shows GIFs of jpterm in action.

jp

Provides a JMESPath command line interface called jp. This cross platform tool accepts JSON data through stdin or input files, and prints the result of evaluating the JMESPath expression to stdout. This is useful if you’re writing shell scripts that need to manipulate JSON data.

Community Implementations

In addition to the official libraries managed by the JMESPath org, the community has written JMESPath libraries in various languages:

Language

Name

Compliance Level

C++

jmespath.cpp

Fully compliant

C++

jsoncons

Fully compliant

Elixir

ex-jmes

Fully compliant

Java

jmespath-java

Fully compliant

.NET

jmespath.net

Fully compliant

TypeScript

jmespath-ts

Fully compliant