-
-
Notifications
You must be signed in to change notification settings - Fork 25
Integrating PackSquash with your application
You're welcome to integrate PackSquash with your applications and scripts, providing that you comply with the terms of its license. In short, the license requires your application to disclose PackSquash source code (even if it is used over a network), and license your application under a compatible open source license (this only matters if you distribute it to the public; for private use you don't have to worry about this). If in doubt, please ask us whether we are fine with your intended usage of PackSquash. And, even if you do not have any doubt, we will also appreciate hearing what kind of great things you do!
With that disclaimer out of the way, there are several ways to integrate with PackSquash.
This way is not the most performant and doesn't allow for sophisticated communication or workflows that involve the two components. But it has an easier learning curve, as it boils down to executing PackSquash as an end-user would.
Please keep in mind that any change to outputs generated by PackSquash, including the strings it prints to the standard output and error streams, is not considered a breaking change for versioning purposes. In other words, you should not assume that PackSquash will keep its outputs constant for otherwise compatible versions.
A well-documented toy example that shows how to use PackSquash from a Java application with this approach is here. You should be able to translate it to other languages and environments without much trouble.
Work for this approach has been put on hold indefinitely due to its perceived lack of benefits over running the PackSquash binary directly, concerns over balancing semantic versioning requirements with the PackSquash development pace, and the usage of nightly Rust. Depending on how these factors evolve, we are open to changing our stance in the future. Please contact us if you are interested in a library or FFI and find the binary unsatisfying for some reason.