From c42f1d758d9af0dbc75fcca009e429946d650d6c Mon Sep 17 00:00:00 2001 From: _ <_@_> Date: Wed, 27 Sep 2023 19:49:09 -0500 Subject: [PATCH] :pencil: doc: add a README.md to bring the project to a checkpoint It's far from done. I don't know when I'll get back to it. --- COPYING.txt | 661 ++++++++++++++++++++++++++++++++++++ README.md | 12 + pictures/2023_09_27Sep.jpeg | Bin 0 -> 51958 bytes src/main.rs | 2 +- 4 files changed, 674 insertions(+), 1 deletion(-) create mode 100644 COPYING.txt create mode 100644 README.md create mode 100644 pictures/2023_09_27Sep.jpeg diff --git a/COPYING.txt b/COPYING.txt new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/COPYING.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..65d7bcc --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +An un-finished video calling app using Rust and egui. + +555 because it's a [fictitious phone](https://en.wikipedia.org/wiki/Fictitious_telephone_number). + +![The five_five_five GUI showing a live webcam view of a pocket calculator. The calculator is showing the number "555"](pictures/2023_09_27Sep.jpeg) + +# Roadmap + +- [x] Read, decode, display local webcam frames +- [ ] Build simulation of network protocol +- [ ] Send video over the network +- [ ] Audio diff --git a/pictures/2023_09_27Sep.jpeg b/pictures/2023_09_27Sep.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..96346997d1de9813bbeba3e23b0074fbb58744f7 GIT binary patch literal 51958 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