The VRayInstancer plugin creates instances of objects over a variety of supported particles input: ParticleFlow system, Alembic particles loaded through VRayProxy, Thinking particles, and PRT particles loaded with KrakatoaPRTLoader. In comparison to the Particle Flow itself, which can only work with mesh objects, the VRayInstancer can instantiate any renderable object, including VRayProxy, lights, hair, displaced objects, Alembic particles (through VRayProxy), etc.
The source code for the VRayInstancer plugin is included with the V-Ray SDK.