Contributte: Acquisition of Gamee Packages

4 years ago by Pavel Janda  

As the author of Ublaboo packages, I made a deal with Milan some time ago to transfer most of the libraries to Contributte. This mutual help between the “organizations” will push Contributte further towards becoming a robust entity that people trust and rely on. In addition to the currently most used datagrid, Contributte also gained other libraries with tens of thousands of downloads.

A few months and acquisitions later…

As part of my full-time job at Gamee (, we developed some excellent vendors that deserve the spotlight. And because I want to see more and more repositories in Contributte, I decided to transfer some packages from Gamee to Contributte again. Let's take a look at them.

gamee/nette-rabbitmq → contributte/rabbitmq

Link to GitHub here: contributte/rabbitmq

The library uses the powerful vendor bunny/bunny for connecting to RabbitMQ. Using a configuration file, you can easily define queues/exchanges, producers, and consumers, and the library itself takes care of everything related to the RabbitMQ API. Necessary learning materials can be found in the README.

gamee/php-jsonrpc → contributte/jsonrpc

Link to GitHub here: contributte/jsonrpc

What communication scheme do you use when implementing an API? The most common is probably RESTful APIs or their modified versions. A few years ago, I wrote an API in JSON-RPC. It's more or less about each request containing a method and id property. The method specifies what I want the API to do (logIn, user.authentication.register, etc.). The nullable ID is unique per request, ensuring proper functionality when calling asynchronous APIs (I can send multiple requests to the server, but they can return in a completely different order, so it's good to identify each request somehow).

Integration into Nette brings simplicity in mapping methods to classes in application logic and automatic validation of the JSON-RPC schema and incoming request. We use JSON schema for validating input data. And again – we have implemented everything for you. The library's README is still under construction. Hopefully, we will soon see a proper tutorial and demo in planette/playground. :)

ublaboo/anabelle → contributte/anabelle

I haven't properly mentioned the Anabelle project anywhere yet, so I'll fix that here because it closely relates to the aforementioned JSON-RPC.

I've grown fond of JSON-RPC, and it appears in all the projects I (co)work on. Every API should naturally have API documentation. Apiary or Swagger is fine, but their design is tied to REST APIs. So, one beautiful evening, I extended Markdown with include macros and a few others, highlighted it, and voila, extended highlighted Markdown was born. :D My current favorite API documentation tool! With Anabelle, I document JSON-RPC, REST, and even write my notes entirely unrelated to programming.