Best practice for integrating outside packages

I wanted to open up some discussion on the best practice for integrating outside packages with UF. Being new to programming myself I am not sure if there is a methodology in general for handling this and if so, what that might look like when tweaked to fit with UF’s structure.

In my particular situation I am trying to utilize https://github.com/VROOM-Project with my project. The core package is written in C++. It would be helpful to know best practices on:

  1. Should this package be placed into a custom sprinkle directory or kept completely separate and outside my root UserFrosting folder all together?

  2. Are there certain guidelines to what packages one should include? (Is it bad practice to mix programming languages)?

Hmm, C++ — OS/machine specific compiling required? UserFrosting is built using OS portable scripting languages.

Maybe the best practice would be to have the machine specific compiled libraries outside of the sprinkle folder?

How do you envision your sprinkle interfacing with VROOM? Is it a service style interface?

I’m working on a routing project for vehicle transportation and using VROOM for route optimization. So basically I startup the main VROOM service and then interact with it in my Sprinkle through the API https://github.com/VROOM-Project/vroom-express