Licensing & Open Source

Information about iTensor's licensing, public API usage, contribution guidelines, and community governance.

Licensing Information

iTensor is an open-source project, which means its source code is freely available for use, modification, and distribution under the terms of its license. We believe in open collaboration to advance tools for scientific computing.

Project License

iTensor is released under the MIT License, a permissive open-source license that allows you to use, copy, modify, merge, publish, and distribute the software with very limited restriction.

Essentially, you must include the copyright notice and license text in any distribution, but you are free to use iTensor in personal, academic, or commercial projects. All contributions to iTensor are also under the MIT License (by contributing, you agree that your code will be released under MIT for the benefit of all users).

If you use iTensor's source code in your own project, you should include an attribution (e.g., in your documentation or about page) that your project uses iTensor and include the LICENSE file.

Public API Usage

We plan to make the iTensor API available as a public service to encourage usage and feedback. This means users won't necessarily need to run their own server; they can send requests to an official iTensor server maintained by the project.

Base URL & Access

When the public API is live, we will document the base URL (e.g., https://api.itensor.org/v1/), which hosts the same endpoints (/tensors/symbolic/, /tensors/numerical/, etc.). The version (v1) might be included in the URL for future versioning.

Initially, the API might be open without authentication for demonstration and low-volume use. However, to prevent abuse and ensure fair usage, we may introduce API keys or tokens. Users would register to obtain an API key which must be included in requests.

Rate Limits

To guarantee a good experience for everyone and to protect the server, we will enforce rate limits on the public API. For example, a free usage tier might allow something like 1000 requests per day per user (or per API key/IP).

If a client exceeds the rate limit, the API would respond with HTTP 429 Too Many Requests, and the response body will contain a message like "Rate limit exceeded, please try again later or contact support for higher limits." We might have short-term rate limits as well (e.g., no more than 5 requests per second) to prevent bursts.

Fair Use and Attribution

If you use the iTensor API publicly (for example, in a web app or a research project), we kindly request attribution. This could be as simple as mentioning "Powered by iTensor" with a link to our website in your application or citing iTensor in any academic publications that benefited from it.

While the MIT License doesn't require attribution beyond including the license text, we appreciate credit as it helps spread awareness.

Privacy and Data

The API does not store your tensor data persistently (each request is processed in memory and not logged beyond perhaps transient logs). However, we might log request metadata (timestamp, size, maybe IP) for monitoring. No personal data is required to use the API except an email for API key registration if that is implemented.

Service Level

As an open service, we will try our best to keep the API running reliably, but it comes with no strict uptime guarantee initially. It's possible the service may be down for maintenance or upgrades. We will communicate planned downtime on our website or community channels. As the project matures, we may formalize an uptime/monitoring plan.

Open Source Contribution and Forks

Because iTensor is open source, anyone can fork the repository and even deploy their own versions of the API. This is allowed under the license. If you do deploy a modified version, please name it in a way that doesn't confuse users (to respect our project name/trademark) and adhere to the license terms.

We encourage contributing back improvements to the main project. Here are some guidelines for contributors:

  • Fork the repository and create a branch for your changes
  • Follow the coding standards and style guidelines in the project
  • Write tests for your changes where applicable
  • Ensure your code passes all existing tests
  • Submit a pull request with a clear description of your changes
  • Be responsive to feedback and be willing to make requested changes

We welcome contributions in various forms, including:

  • Bug fixes and security improvements
  • Performance optimizations
  • New features aligned with the project's goals
  • Documentation improvements
  • Test cases that improve coverage

Community and Governance

Our aim is to keep iTensor free and open for the community. The core maintainers govern the project, but major decisions (especially relating to licensing changes or adding any usage restrictions) will be discussed openly. We welcome community input on how the public API is run as well.

Governance Model

The iTensor project follows a transparent governance model where:

  • Core maintainers make day-to-day decisions about the project
  • Significant changes are discussed publicly through issues and pull requests
  • Community feedback is actively sought and considered
  • Roadmap decisions incorporate both user needs and technical considerations
  • The project prioritizes backward compatibility when possible

In summary, iTensor's open source license allows broad use, and the public API will be shared to let developers use the service without self-hosting. Just be mindful of the usage guidelines (rate limits and attribution) so we can keep the service available for everyone.

If you're interested in contributing to iTensor or have questions about using it in your project, please reach out to the maintainers via:

  • GitHub issues for bug reports or feature requests
  • Discussion forums for general questions and community interaction
  • Email for private inquiries to the core team