Why 'psst' namespace

Jan 23, 2019

Some time ago I was working in a studio named “Pushkin Game Studio” and at some point we decided to opensource some libraries that we developed for our projects and that don’t contain business-related code. At first we put all the code in namespace tip, the codename for the project we were developing when we started the libaries. The namespace is still used in several libraries. Some libraries were too generic and we decided to put them into thier own namespaces. But later the project was closed, we started another one and the tip namespace became totally irrelevant.

So the newer libraries used namespace psst, which initially stood for PuShkin Studio Templates, as the first library using this namespace was a collection of metaprogramming utilities. I left the studio in August 2018, but I continue to support and develop the libraries as I love the sound the namespace is pronounced :) There are several Pushkin Studio libraries that are available on github.com:

  • tip-log (in tip namespace), a simple library for writing log to a file from multiple threads
  • tip-facet (in tip namespace), library for attaching arbitrary data to an object that is only aware of the fact it can have the facets
  • tip-lru, a service for boost::asio for LRU caches that automatically expires data from the cache
  • tip-iri (in tip namespace), boost::spirit-based parser for Internationalized Resource Identifiers. Very slow to compile
  • tip-http (in tip namespace), an HTTP 1.1 client/server library on top of boost::asio
  • PostgreSQL async driver (in tip namespace), for usage in boost::asio loop
  • Another Finite State Machine (in it’s own afsm namespace)
  • Wire RPC Library (in it’s own wire namespace), library for binary inter-process comunication, for usage in boost::asio loop
  • metapushkin, this was the first library in psst namespace and it is a collection of metaprogramming utilities
  • ANSI-Colors, small library for colorising console output
  • pushkin-l10n, library for managing localised string and generating PO files from data that is not handled by gettext utilities. The library uses boost::locale for implementation

There is also the math library, that also uses psst namespace, but it was started long before my coming to the “Pushkin Studio” and changed several repositories and namespaces. Now I like the name, “Psst! Math”, and will stick with it.

I will eventually migrate the most useful libraries to the psst namespace, write some docs and update them to support new boost and new C++ standards.