Ohler Dev Notes


I'm Peter Ohler and this is my site. Have a look around and check out the open source projects linked by the large Os on the right side of the page. You can view my old pages by clicking on the Old link. If you want to contact me you can email me at peter@ohler.com.


September 7, 2020

OjC has been updated after a long period of no changes. This new version, v4.0.0 includes a re-written parser as well as multi-threaded file reader and callback handler.

The 4.0 release continues to focus on large document or multi-json document parsing. OjC is able to parse large files. Even those that can not be loaded into memory and does so using aonly a few megabytes of memory. A variety of parsing options are included to allow the user to choose the method most appropriate to their requirements.

OjC has alway had a means to build JSON in memory before writing or displaying. A new build option is now included that makes it even easier to build JSON.


July 20, 2020

A new high performance JSON toolkit for go has been released. OjG includes a number of tools as well as coming out ahead in all categories on the Go JSON comparison page.

That OjG includes a full JSONPath implementation that is able to operate on most Go types. Also includes is an application that processes JSON files. The command (oj) is similar to jq but use JSONPath instead of defining a custom query language.


August 28, 2018

The latest addition to my open source projects is Agoo, is a high performance web server gem for Ruby. Agoo includes a new publish and subscribe model that the author of Iodine and I worked together on. A short article describes the API for pub/sub with some example code.

Agoo turned out well enough that the code for it is being folded back into OpO. Future enhancements to Agoo will also be part of OpO.



January 9, 2017

How about a graph database? Performance on the currently available graph databases or triple stores is not that impressive. It seems like an area worth exploring. OpO is my attempt at triple store exploration. It's looking pretty fast so far. On the long term road map are support for RDF, TURTLE, and SPARQL.

The project re-uses some of the HTTP server code from Piper Push Cache and gets similar latency and throughput. Even with REST over HTTP and not a custom interface more than 100,000 retrievals per second are possible.


Piper Push Cache

December 15, 2016

Most of the systems I develop use push to move data around. JSON is another area I've accumulated a fair amount of expertise in. Putting the two together in a web server resulted in Piper Push Cache, a very fast scalable web server that has build in support for push in a number of ways. The performance surprised me as it performed better than nginx. Check out the benchmarks.

The first push technology is getting data in the form of JSON out to web pages. This uses my own WebSockets implementation. SSE is used for mobile browsers. The second use of push is getting data from the server to other applications. For this NATS is used.

The final bit of fun in Piper Push Cache is a process flow engine. The fun part of that was using Javascript to write a complete process flow editor.



Fast JSON Parser


Fast XML Parser


Optimized JSON in C


Optimized JSON in Go

A goo

High performance Web Server gem


Opee based
File Synchronization Application


Operations Workflow
Highly parallel workflow


Former Site
(Electric Cars, Robotics, Bicycles, and more)