This privacy notice discloses the privacy practices for InFlow Machine Learning Inc. This privacy notice applies solely to information collected by this website. It will notify you of the following:
We are the sole owners of the information collected on this site. We only have access to/collect information that you voluntarily give us via email or other direct contact from you. We will not sell or rent this information to anyone.
We will use your information to respond to you, regarding the reason you contacted us. We will not share your information with any third party outside of our organization, other than as necessary to fulfil your request, e.g. to ship an order.
You may opt out of any future contacts from us at any time. You can do the following at any time by contacting us via the email address or phone number given on our website:
We take precautions to protect your information. When you submit sensitive information via the website, your information is protected both online and offline.
Wherever we collect sensitive information (such as credit card data), that information is encrypted and transmitted to us in a secure way. You can verify this by looking for a lock icon in the address bar and looking for "https" at the beginning of the address of the Web page.
While we use encryption to protect sensitive information transmitted online, we also protect your information offline. Only employees who need the information to perform a specific job (for example, billing or customer service) are granted access to personally identifiable information. The computers/servers in which we store personally identifiable information are kept in a secure environment.
StructQL is an open source Go package that allows for the complete management of SQL databases through native Go structs. You can check out the source code at github.com/inflowml/structql and the docs at godoc.org/github.com/inflowml/structql
For a closer look into the usage and advantages to StructQL, checkout Managing Your SQL Database in Go with StructQL
StructQL was initially built as a common library for standardizing and managing databases across microservices in the InFlow Count platform. Our objective was to build a package that would streamline database management for all developers. Our primary goals were to:
In InFlow Count, each microservice manages it's own SQL database. The microservices are solely responsible for the maintenance and accessibility of the information they maintain. Because of this we wanted to minimize the re-engineering conducted by developers for each microservice. With this in mind the the first two objectives are relatively self explanatory. We wanted abstract more advanced sanitation and unsafe usage from developers who may not be SQL experts. Next, we wholeheartedly believe in scalability and portability of code. That's why we wanted to build a framework that would allow us to change our SQL Server/Provider in the future without requiring significant redesign or changes. Finally, the standard Go SQL library has a number of redundant actions that make it very flexible but generally unwieldy. We decided that a system where the structs in the code tightly mimicked the SQL tables in the database would allow for more seamless data management improve readability and maintainability in our code. The tight coupling of structs to db tables follows the Go methodology of embedding documentation within the code. This meant that each of our microservice databases could be easily understood just through our Go structs.
StructQL closely resembles how JSON is handled in the standard Go library. It has been optimized for productivity and encourages best practices allowing developers to quickly create tables, conduct queries, and seamlessly manoeuvre through their SQL databases. An example of this is how StructQL requires the use of an ID column for each table even when this may not be entirely necessary. This, however, does not mean that the performance of StructQL queries will be any better than the standard SQL library. Ultimately the performance comes down the the developers individual implementation of their database and its use.
StructQL is very much in its infancy. Currently we support Postgres and intend to add MySQL functionality in the near future. Additionally, we are looking at constructing a more rigid query system that will avoid the use of SQL compliant WHERE conditions. We hope you find as much use out of StructQL as we do at InFlow, please feel free to report any issues as well as pull requests if you are interested in the project.