Open-source licences
CamInfoLab’s shutter counter would not exist without the gPhoto2 project, which has documented and implemented camera protocols for more than two decades, and Ingvar Stepanyan’s work porting it to the web.
The camera engine
The camera engine is an unmodified build of web-gPhoto2, served from /engine/web-gphoto2-ec3f446/ as two files (libapi.mjs and libapi.wasm). It is licensed under the GNU Lesser General Public License, version 2.1 or later; the full licence text is served alongside it. The links below point to the exact source revisions it was built from.
Because the engine is loaded as separate files at run time, you can replace it with your own build of the same libraries. The provenance file explains how.
| Component | Licence | Source |
|---|---|---|
| web-gPhoto2Browser build of libgphoto2 and the bridge between it and JavaScript. Copyright Google LLC. | LGPL-2.1-or-later | commit ec3f446 |
| libgphoto2 2.5.31.1 (Emscripten fork)The camera library that speaks PTP to your camera and reads its shutter counter. | LGPL-2.1-or-later | commit 90bf914 |
| libusb 1.0.27USB access layer, using its WebUSB backend. | LGPL-2.1-or-later | Source code |
| GNU Libtool libltdl 2.4.6Module loading used by libgphoto2. | LGPL-2.1-or-later with the libtool exception | Source code |
| Emscripten runtimeGlue code that runs the WebAssembly module in the browser. | MIT / University of Illinois NCSA | Source code |
The website
| Component | Licence | Source |
|---|---|---|
| Next.jsSite framework (static export). | MIT | Source code |
| ReactUser interface library. | MIT | Source code |
| Tailwind CSSStyling. | MIT | Source code |
| markedRenders our Markdown content at build time. | MIT | Source code |
| Instrument Sans typefaceThe site’s typeface, by Instrument. | SIL Open Font License 1.1 | Source code |