type safe zeromq publisher