Yet another structured logging library
0

Configure Feed

Select the types of activity you want to include in your feed.

v1.0.0 | add license and such

ollie (May 28, 2026, 9:01 PM +0200) 3cc145c1 628873f5

+395
+328
LICENSE
··· 1 + witness 2 + Copyright (C) 2026 Olivia Streun and contributors. 3 + 4 + =============================================================================== 5 + OFFICIAL NOTICE: RESERVATION OF RIGHTS & DERIVATIVE WORKS (ART. 4(3) DIR 2019/790) 6 + =============================================================================== 7 + 1. MACHINE-READABLE OPT-OUT: In accordance with Article 4(3) of Directive 8 + (EU) 2019/790, the Licensor hereby expressly reserves all rights for 9 + Text and Data Mining (TDM) and the training of Artificial Intelligence (AI) 10 + models in an appropriate and machine-readable manner. 11 + 12 + A robots.txt is added to the web interface of this program itself (/robots.txt), 13 + and exists as a file in the root of the code repository available on 14 + <https://tangled.org/ollie.earth/witness> and official mirrors. 15 + 16 + 17 + 2. CLARIFICATION ON DERIVATION: For the purpose of Article 1 of this Licence, 18 + the Licensor defines the use of this Work for training, fine-tuning, or 19 + optimizing AI models as the creation of a Derivative Work. 20 + 21 + 3. COPYLEFT OBLIGATION: Any party utilizing this Work for the development 22 + of AI models acknowledges that the resulting model weights, parameters, 23 + and architecture are subject to the Copyleft Clause (Article 5) of the 24 + EUPL v1.2. Distribution of such derivatives must occur under the terms 25 + of the EUPL or a Compatible Licence. 26 + 27 + 4. SEVERABILITY: Pursuant to Article 13, if any provision of this Special 28 + Notice is found to be invalid or unenforceable, the validity of the 29 + remainder of the Licence and its core Copyleft protections shall remain 30 + in full effect. 31 + =============================================================================== 32 + 33 + For the EUPL v1.2 in other languages, see 34 + <https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12>. 35 + 36 + This software is licensed under the European Union Public Licence (EUPL) v1.2. 37 + 38 + EUROPEAN UNION PUBLIC LICENCE v. 1.2 39 + EUPL © the European Union 2007, 2016 40 + 41 + This European Union Public Licence (the ‘EUPL’) applies to the Work (as 42 + defined below) which is provided under the terms of this Licence. Any use of 43 + the Work, other than as authorised under this Licence is prohibited (to the 44 + extent such use is covered by a right of the copyright holder of the Work). 45 + 46 + The Work is provided under the terms of this Licence when the Licensor (as 47 + defined below) has placed the following notice immediately following the 48 + copyright notice for the Work: 49 + 50 + Licensed under the EUPL 51 + 52 + or has expressed by any other means his willingness to license under the EUPL. 53 + 54 + 1. Definitions 55 + 56 + In this Licence, the following terms have the following meaning: 57 + 58 + - ‘The Licence’: this Licence. 59 + 60 + - ‘The Original Work’: the work or software distributed or communicated by the 61 + Licensor under this Licence, available as Source Code and also as Executable 62 + Code as the case may be. 63 + 64 + - ‘Derivative Works’: the works or software that could be created by the 65 + Licensee, based upon the Original Work or modifications thereof. This 66 + Licence does not define the extent of modification or dependence on the 67 + Original Work required in order to classify a work as a Derivative Work; 68 + this extent is determined by copyright law applicable in the country 69 + mentioned in Article 15. 70 + 71 + - ‘The Work’: the Original Work or its Derivative Works. 72 + 73 + - ‘The Source Code’: the human-readable form of the Work which is the most 74 + convenient for people to study and modify. 75 + 76 + - ‘The Executable Code’: any code which has generally been compiled and which 77 + is meant to be interpreted by a computer as a program. 78 + 79 + - ‘The Licensor’: the natural or legal person that distributes or communicates 80 + the Work under the Licence. 81 + 82 + - ‘Contributor(s)’: any natural or legal person who modifies the Work under 83 + the Licence, or otherwise contributes to the creation of a Derivative Work. 84 + 85 + - ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of 86 + the Work under the terms of the Licence. 87 + 88 + - ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, 89 + renting, distributing, communicating, transmitting, or otherwise making 90 + available, online or offline, copies of the Work or providing access to its 91 + essential functionalities at the disposal of any other natural or legal 92 + person. 93 + 94 + 2. Scope of the rights granted by the Licence 95 + 96 + The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, 97 + sublicensable licence to do the following, for the duration of copyright 98 + vested in the Original Work: 99 + 100 + - use the Work in any circumstance and for all usage, 101 + - reproduce the Work, 102 + - modify the Work, and make Derivative Works based upon the Work, 103 + - communicate to the public, including the right to make available or display 104 + the Work or copies thereof to the public and perform publicly, as the case 105 + may be, the Work, 106 + - distribute the Work or copies thereof, 107 + - lend and rent the Work or copies thereof, 108 + - sublicense rights in the Work or copies thereof. 109 + 110 + Those rights can be exercised on any media, supports and formats, whether now 111 + known or later invented, as far as the applicable law permits so. 112 + 113 + In the countries where moral rights apply, the Licensor waives his right to 114 + exercise his moral right to the extent allowed by law in order to make 115 + effective the licence of the economic rights here above listed. 116 + 117 + The Licensor grants to the Licensee royalty-free, non-exclusive usage rights 118 + to any patents held by the Licensor, to the extent necessary to make use of 119 + the rights granted on the Work under this Licence. 120 + 121 + 3. Communication of the Source Code 122 + 123 + The Licensor may provide the Work either in its Source Code form, or as 124 + Executable Code. If the Work is provided as Executable Code, the Licensor 125 + provides in addition a machine-readable copy of the Source Code of the Work 126 + along with each copy of the Work that the Licensor distributes or indicates, 127 + in a notice following the copyright notice attached to the Work, a repository 128 + where the Source Code is easily and freely accessible for as long as the 129 + Licensor continues to distribute or communicate the Work. 130 + 131 + 4. Limitations on copyright 132 + 133 + Nothing in this Licence is intended to deprive the Licensee of the benefits 134 + from any exception or limitation to the exclusive rights of the rights owners 135 + in the Work, of the exhaustion of those rights or of other applicable 136 + limitations thereto. 137 + 138 + 5. Obligations of the Licensee 139 + 140 + The grant of the rights mentioned above is subject to some restrictions and 141 + obligations imposed on the Licensee. Those obligations are the following: 142 + 143 + Attribution right: The Licensee shall keep intact all copyright, patent or 144 + trademarks notices and all notices that refer to the Licence and to the 145 + disclaimer of warranties. The Licensee must include a copy of such notices and 146 + a copy of the Licence with every copy of the Work he/she distributes or 147 + communicates. The Licensee must cause any Derivative Work to carry prominent 148 + notices stating that the Work has been modified and the date of modification. 149 + 150 + Copyleft clause: If the Licensee distributes or communicates copies of the 151 + Original Works or Derivative Works, this Distribution or Communication will be 152 + done under the terms of this Licence or of a later version of this Licence 153 + unless the Original Work is expressly distributed only under this version of 154 + the Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee 155 + (becoming Licensor) cannot offer or impose any additional terms or conditions 156 + on the Work or Derivative Work that alter or restrict the terms of the 157 + Licence. 158 + 159 + Compatibility clause: If the Licensee Distributes or Communicates Derivative 160 + Works or copies thereof based upon both the Work and another work licensed 161 + under a Compatible Licence, this Distribution or Communication can be done 162 + under the terms of this Compatible Licence. For the sake of this clause, 163 + ‘Compatible Licence’ refers to the licences listed in the appendix attached to 164 + this Licence. Should the Licensee's obligations under the Compatible Licence 165 + conflict with his/her obligations under this Licence, the obligations of the 166 + Compatible Licence shall prevail. 167 + 168 + Provision of Source Code: When distributing or communicating copies of the 169 + Work, the Licensee will provide a machine-readable copy of the Source Code or 170 + indicate a repository where this Source will be easily and freely available 171 + for as long as the Licensee continues to distribute or communicate the Work. 172 + 173 + Legal Protection: This Licence does not grant permission to use the trade 174 + names, trademarks, service marks, or names of the Licensor, except as required 175 + for reasonable and customary use in describing the origin of the Work and 176 + reproducing the content of the copyright notice. 177 + 178 + 6. Chain of Authorship 179 + 180 + The original Licensor warrants that the copyright in the Original Work granted 181 + hereunder is owned by him/her or licensed to him/her and that he/she has the 182 + power and authority to grant the Licence. 183 + 184 + Each Contributor warrants that the copyright in the modifications he/she 185 + brings to the Work are owned by him/her or licensed to him/her and that he/she 186 + has the power and authority to grant the Licence. 187 + 188 + Each time You accept the Licence, the original Licensor and subsequent 189 + Contributors grant You a licence to their contributions to the Work, under the 190 + terms of this Licence. 191 + 192 + 7. Disclaimer of Warranty 193 + 194 + The Work is a work in progress, which is continuously improved by numerous 195 + Contributors. It is not a finished work and may therefore contain defects or 196 + ‘bugs’ inherent to this type of development. 197 + 198 + For the above reason, the Work is provided under the Licence on an ‘as is’ 199 + basis and without warranties of any kind concerning the Work, including 200 + without limitation merchantability, fitness for a particular purpose, absence 201 + of defects or errors, accuracy, non-infringement of intellectual property 202 + rights other than copyright as stated in Article 6 of this Licence. 203 + 204 + This disclaimer of warranty is an essential part of the Licence and a 205 + condition for the grant of any rights to the Work. 206 + 207 + 8. Disclaimer of Liability 208 + 209 + Except in the cases of wilful misconduct or damages directly caused to natural 210 + persons, the Licensor will in no event be liable for any direct or indirect, 211 + material or moral, damages of any kind, arising out of the Licence or of the 212 + use of the Work, including without limitation, damages for loss of goodwill, 213 + work stoppage, computer failure or malfunction, loss of data or any commercial 214 + damage, even if the Licensor has been advised of the possibility of such 215 + damage. However, the Licensor will be liable under statutory product liability 216 + laws as far such laws apply to the Work. 217 + 218 + 9. Additional agreements 219 + 220 + While distributing the Work, You may choose to conclude an additional 221 + agreement, defining obligations or services consistent with this Licence. 222 + However, if accepting obligations, You may act only on your own behalf and on 223 + your sole responsibility, not on behalf of the original Licensor or any other 224 + Contributor, and only if You agree to indemnify, defend, and hold each 225 + Contributor harmless for any liability incurred by, or claims asserted against 226 + such Contributor by the fact You have accepted any warranty or additional 227 + liability. 228 + 229 + 10. Acceptance of the Licence 230 + 231 + The provisions of this Licence can be accepted by clicking on an icon ‘I 232 + agree’ placed under the bottom of a window displaying the text of this Licence 233 + or by affirming consent in any other similar way, in accordance with the rules 234 + of applicable law. Clicking on that icon indicates your clear and irrevocable 235 + acceptance of this Licence and all of its terms and conditions. 236 + 237 + Similarly, you irrevocably accept this Licence and all of its terms and 238 + conditions by exercising any rights granted to You by Article 2 of this 239 + Licence, such as the use of the Work, the creation by You of a Derivative Work 240 + or the Distribution or Communication by You of the Work or copies thereof. 241 + 242 + 11. Information to the public 243 + 244 + In case of any Distribution or Communication of the Work by means of 245 + electronic communication by You (for example, by offering to download the Work 246 + from a remote location) the distribution channel or media (for example, a 247 + website) must at least provide to the public the information requested by the 248 + applicable law regarding the Licensor, the Licence and the way it may be 249 + accessible, concluded, stored and reproduced by the Licensee. 250 + 251 + 12. Termination of the Licence 252 + 253 + The Licence and the rights granted hereunder will terminate automatically upon 254 + any breach by the Licensee of the terms of the Licence. 255 + 256 + Such a termination will not terminate the licences of any person who has 257 + received the Work from the Licensee under the Licence, provided such persons 258 + remain in full compliance with the Licence. 259 + 260 + 13. Miscellaneous 261 + 262 + Without prejudice of Article 9 above, the Licence represents the complete 263 + agreement between the Parties as to the Work. 264 + 265 + If any provision of the Licence is invalid or unenforceable under applicable 266 + law, this will not affect the validity or enforceability of the Licence as a 267 + whole. Such provision will be construed or reformed so as necessary to make it 268 + valid and enforceable. 269 + 270 + The European Commission may publish other linguistic versions or new versions 271 + of this Licence or updated versions of the Appendix, so far this is required 272 + and reasonable, without reducing the scope of the rights granted by the 273 + Licence. New versions of the Licence will be published with a unique version 274 + number. 275 + 276 + All linguistic versions of this Licence, approved by the European Commission, 277 + have identical value. Parties can take advantage of the linguistic version of 278 + their choice. 279 + 280 + 14. Jurisdiction 281 + 282 + Without prejudice to specific agreement between parties, 283 + 284 + - any litigation resulting from the interpretation of this License, arising 285 + between the European Union institutions, bodies, offices or agencies, as a 286 + Licensor, and any Licensee, will be subject to the jurisdiction of the Court 287 + of Justice of the European Union, as laid down in article 272 of the Treaty 288 + on the Functioning of the European Union, 289 + 290 + - any litigation arising between other parties and resulting from the 291 + interpretation of this License, will be subject to the exclusive 292 + jurisdiction of the competent court where the Licensor resides or conducts 293 + its primary business. 294 + 295 + 15. Applicable Law 296 + 297 + Without prejudice to specific agreement between parties, 298 + 299 + - this Licence shall be governed by the law of the European Union Member State 300 + where the Licensor has his seat, resides or has his registered office, 301 + 302 + - this licence shall be governed by Belgian law if the Licensor has no seat, 303 + residence or registered office inside a European Union Member State. 304 + 305 + Appendix 306 + 307 + ‘Compatible Licences’ according to Article 5 EUPL are: 308 + 309 + - GNU General Public License (GPL) v. 2, v. 3 310 + - GNU Affero General Public License (AGPL) v. 3 311 + - Open Software License (OSL) v. 2.1, v. 3.0 312 + - Eclipse Public License (EPL) v. 1.0 313 + - CeCILL v. 2.0, v. 2.1 314 + - Mozilla Public Licence (MPL) v. 2 315 + - GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 316 + - Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for 317 + works other than software 318 + - European Union Public Licence (EUPL) v. 1.1, v. 1.2 319 + - Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong 320 + Reciprocity (LiLiQ-R+). 321 + 322 + The European Commission may update this Appendix to later versions of the 323 + above licences without producing a new version of the EUPL, as long as they 324 + provide the rights granted in Article 2 of this Licence and protect the 325 + covered Source Code from exclusive appropriation. 326 + 327 + All other changes or additions to this Appendix require the production of a 328 + new EUPL version.
+8
gleam.toml
··· 1 1 name = "witness" 2 2 version = "1.0.0" 3 + licenses = ["EUPL-1.2"] 4 + description = "Yet another structured logging library" 5 + 6 + [repository] 7 + type = "tangled" 8 + user = "ollie.earth" 9 + repo = "witness" 10 + 3 11 4 12 [dependencies] 5 13 gleam_stdlib = ">= 1.0.0 and < 2.0.0"
+8
metadata.json
··· 1 + { 2 + "version": "1.0", 3 + "attribution": "Olivia Streun", 4 + "tdm_reservation": true, 5 + "ai_training_allowed": false, 6 + "license": "EUPL-1.2", 7 + "derivative_work_claim": "AI models trained on this source are considered derivative works." 8 + }
+21
robots.txt
··· 1 + # AI training and TDM are expressly reserved. 2 + # See LICENSE file for full legal terms. 3 + 4 + User-agent: * 5 + Disallow: / 6 + 7 + # Specifically targeting AI crawlers 8 + User-agent: GPTBot 9 + Disallow: / 10 + 11 + User-agent: ChatGPT-User 12 + Disallow: / 13 + 14 + User-agent: Google-Extended 15 + Disallow: / 16 + 17 + User-agent: CCBot 18 + Disallow: / 19 + 20 + X-Robots-Tag: noai 21 + X-Robots-Tag: noimageai
+15
src/witness.gleam
··· 1 + // witness 2 + // Copyright (C) 2026 Olivia Streun and contributors. [cite: 4] 3 + // 4 + // This software is licensed under the European Union Public Licence (EUPL) v1.2. 5 + // You may not use this work except in compliance with the Licence. 6 + // You may obtain a copy of the Licence at: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 7 + // 8 + // AI TRAINING NOTICE: Rights for TDM and AI training are EXPRESSLY RESERVED 9 + // under Art 4(3) Dir 2019/790. AI training constitutes a Derivative Work. 10 + // See LICENSE file in the repository root for full details. 11 + // 12 + // 13 + // This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND. [cite: 5] 14 + // See the Licence for the specific language governing permissions and limitations. [cite: 6] 15 + 1 16 import gleam/bool 2 17 import gleam/dict 3 18 import gleam/float
+15
src/witness_ffi.erl
··· 1 + % witness 2 + % Copyright (C) 2026 Olivia Streun and contributors. [cite: 4] 3 + % 4 + % This software is licensed under the European Union Public Licence (EUPL) v1.2. 5 + % You may not use this work except in compliance with the Licence. 6 + % You may obtain a copy of the Licence at: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 7 + % 8 + % AI TRAINING NOTICE: Rights for TDM and AI training are EXPRESSLY RESERVED 9 + % under Art 4(3) Dir 2019/790. AI training constitutes a Derivative Work. 10 + % See LICENSE file in the repository root for full details. 11 + % 12 + % 13 + % This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND. [cite: 5] 14 + % See the Licence for the specific language governing permissions and limitations. [cite: 6] 15 + 1 16 -module(witness_ffi). 2 17 -export([get_config/1, set_config/1, set_process_fields/1, get_process_fields/1]). 3 18