Categories
Category results are hidden when using a custom project result order
3.08
Sorbet's runtime type checking component
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
== What's this?
{ComicFury}[https://comicfury.com] is an excellent no-bullshit webcomic hosting
site created and maintained by the legend Kyo. You should support them on
{Patreon}[https://www.patreon.com/comicfury]!
{Jekyll}[https://jekyllrb.com] is a highly regarded and widespread static site
generator. It builds simple slowly-changing content into HTML files using
templates.
RageRender allows you to use your ComicFury templates to generate a static
version of your webcomic site using Jekyll. You just supply your templates,
comics and blogs, and RageRender will output a site that mimics your ComicFury
site.
Well, I say "mimics". Output is a static site, which means all of the
interactive elements of ComicFury don't work. This includes comments,
subscriptions, search, and comic management.
=== But why?!
RageRender allows those of us who work on making changes to ComicFury site
templates to test our changes before we put them live.
With RageRender, you can edit your CSS, HTML templates and site settings before
you upload them to ComicFury. This makes the process of testing changes quicker
and makes it much more likely that you catch mistakes before any comic readers
have a chance to see them.
RageRender doesn't compete with the most excellent ComicFury (who's Patreon you
should contribute to, as I do!) – you should continue to use ComicFury for all
your day-to-day artistic rage management needs. But if you find yourself making
changes to a site design, RageRender may be able to help you.
== Getting started
First, you need to have {Ruby}[https://www.ruby-lang.org/] and
{Bundler}[https://bundle.io/] installed. The Jekyll site has {good guides on how
to do that}[https://jekyllrb.com/docs/installation/] depending on your operating
system.
To set up a new site, open a terminal and type:
mkdir mycomic && cd mycomic
bundle init
bundle add jekyll
bundle add ragerender
Now you can add comics! Add the image into an <tt>images</tt> folder:
mkdir images
cp 'cool comic.jpg' 'images/My first page.jpg'
The file name of the image will be the title of your comic page. And that's it,
you added your first comic!
If you want to add an author note, create a text file in a folder called
<tt>_comics</tt> that has the same file name, but with a <tt>.md</tt> extension:
mkdir _comics
echo "Check out my cool comic y'all!" > '_comics/My first page.md'
Generate the site using:
bundle exec jekyll build
Or start a local website to see it in your browser:
bundle exec jekyll serve
# Now visit http://localhost:4000!
=== Customising your site
You'll notice a few things that might be off about your site, including that the
webcomic title and author name are probably not what you were expecting.
You can create a configuration file to tell RageRender the important details.
Put something like this in your webcomic folder and call it
<tt>_config.yml</tt>:
title: "My awesome webcomic!"
slogan: "It's the best!"
description: >
My epic story about how him and her
fell into a romantic polycule with they and them
defaults:
- scope:
path: ''
values:
author: "John smith"
theme: ragerender
Your webcomic now has its basic information set up.
=== Adding your layouts
If you want to use your own layout code, then create a <tt>_layouts</tt>
directory and put the contents of each of your ComicFury layout tabs in there,
and then put your CSS in the main folder. You should end up with a full set of
files like:
_layouts
archive.html
blog-archive.html
blog-display.html
comic-page.html
error-page.html
overall.html
overview.html
search.html
layout.css
Now when you build your site, your custom templates and styles will be used
instead.
=== Adding blogs
Add your blogs into a folder called `_posts`:
cat _posts/2025-05-29-my-new-comic.md
Hey guys, welcome to my new comic! It's gonna be so sick!
Note that the name of your blog post has to include the date and the title, or
it'll be ignored.
=== Customising comics and blogs
You can add {Front Matter}[https://jekyllrb.com/docs/front-matter/] to set the
details of your author notes and blogs manually:
---
title: "spooky comic page"
date: "2025-03-05 16:20"
image: "images/ghost.png"
author: "Jane doe"
custom:
# use yes and no for tickbox settings
spooky: yes
# use text in quotes for short texts
mantra: "live long and prosper"
# use indented text for long texts
haiku: >
Testing webcomics
Now easier than ever
Thanks to RageRender
comments:
- author: "Skippy"
date: "13 Mar 2025, 3.45 PM"
comment: "Wow this is so sick!"
---
Your author note still goes at the end, like this!
=== Adding extra pages
You can add extra pages just by adding new HTML files to your webcomic folder.
The name of the file becomes the URL that it will use.
Pages by default won't be embedded into your 'Overall' layout. You can change
that and more with optional Front Matter:
---
# Include this line to set the page title
title: "Bonus content"
# Include this line to hide the page from the navigation menu
hidden: yes
# Include this line to embed this page in the overall layout
layout: Overall
---
<h1>yo check out my bonus content!</h1>
=== Stuff that doesn't work
Here is a probably incomplete list of things you can expect to be different
about your local site compared to ComicFury:
- Any comments you specify in Front Matter will be present, but you can't add
new ones
- Search doesn't do anything at all
- Saving and loading your place in the comic isn't implemented
- GET and POST variables in templates are ignored and will always be blank
- Random numbers in templates will be random only once per site build, not once
per page call
== Without Jekyll
RageRender can also be used without Jekyll to turn ComicFury templates into
templates in other languages.
E.g:
gem install ragerender
echo "[c:iscomicpage]<div>[f:js|v:comictitle]</div>[/]" > template.html
ruby $(gem which ragerender/to_liquid) template.html
# {% if iscomicpage %}<div>{{ comictitle | escape }}</div>{% endif %}
ruby $(gem which ragerender/to_erb) template.html
# <% if iscomicpage %><div><%= js(comictitle) %></div><% end %>
You still need to pass the correct variables to these templates; browse {this
unofficial documentation}[https://github.com/heyeinin/comicfury-documentation]
or RageRender::ComicDrop etc. to see which variables work on which templates.
== Get help
That's not a proclamation but an invitation! Reach out if you're having trouble
by {raising an issue}[https://github.com/simonwo/ragerender/issues] or posting
in the ComicFury forums.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.09
Enums, properties, generics, structured objects and runtime type checking.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.01
Stop wrestling with complex type validations and unclear error messages. Domainic::Type brings type validation to Ruby that is both powerful and delightful to use. Build composable type constraints with crystal-clear error messages that actually tell you what went wrong. From simple type checks to complex collection validations, make your types work for you, not against you!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Releases
Activity
0.0
A gem that provides integration between Sorbet type checking and RSpec testing framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
This is an improved input function for Ruby.
Using this gem, you can easily get user input with real-time type validation, ensuring that the data provided is as expected, among other things.
If you have any questions, check the documentation: https://github.com/barrosflavio/ruby_better_input
Features:
- Ask, receive and check input in a single line
- Support for types such as integer, float and boolean.
- Input validation with clear error messages.
- Intuitive and easy-to-use function.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.02
Cerealize your ActiveModel objects into flat hashes with a dead simple, yet versatile DSL, and caching and type-checking baked in. Our daily bread is to make your API faster.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.01
Simple runtime type checking for Ruby method signatures
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Dynamic type checker
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.02
Check yardoc format like tag type.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.13
Type checking and type casting of parameters for Action Pack
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
In most cases Ruby doesn't need templated classes, nor any other system of generics, because it isn't statically type checked. However, sometimes we need to automatically generate multiple similar classes, either because of poor design or because of external necessities. For example, to define a GraphQL schema with GraphQL Ruby (https://graphql-ruby.org/) we need to define a distinct class for each type. Since GraphQL is statically type checked but doesn't provide generics, if we need a set of similar but distinct types we're left to define them one by one.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
# foundationallib
<h2>Finally, a cross-platform, portable, well-designed, secure, robust, maximally-efficient C foundational library — Making Engineering And Computing Fast, Secure, Responsive And Easy.</h2>
<br>
<h2><i>Library Uses - What It Does, What It Is, And What It Is A Solution For</i></h2>
<ul class="features-list">
<li><strong>Enables better Engineering Solutions and Security broadly and foundationally where Software Creation or Development or Script Creation is concerned - whether this be on a local, business, governmental or international basis, and makes things easier - and Computing in General.</strong> Don't Reinvent the Wheel - Use Good Wheels - Be Safe And Secure.</li>
<br>
<li><strong>Enables a free-flowing dynamic computer usage that you need, deserve and should have, simply because you have a computer. With full speed and with robustness. You deserve to be able to use your computer wholly and fully, with proper and fast operations.</strong></li>
<br><li><strong>Enables flexibility and power - makes C accessible to the masses (and faster and more secure) with easy usage and strives to bring people up, not degrade the character or actions of people.</strong> This is a fundamental and unequivocal philosophy difference between this library and many subsections of Software Engineering and the mainstream engineering establishment. For instance, in Python, you cannot read a file easily – you have to read it line-by-line or open a file, read the lines, then close it. With this library, you can efficiently read 10,000 files in one function call. This library gives power. Any common operation, there ought to be a powerful function for.<br><br>We should not bitch around with assembly when we don't want to; we should also have full speed. Some old "solutions" deliver neither, then culturally degrade programmers because their tools are bad - actually, it just degrades programmers, and gives them bad tools. COBOL is an example ...<br><br>Human technology is about empowerment – people must fight for it to be empowerment, we don't have time to have AI systems kill us because we want to have bad tools and be weak. We must fight.</li>
</ul>
<br>
<ul>
<h2><i>About Foundationallib</i></h2>
<li>→<strong>Cross platform</strong> - works perfectly in embedded, server, desktop, and all platforms - tested for Windows and UNIX - 64-bit and 32-bit, includes a 3-aspect test suite, with more to come.</li>
<li>→<strong>Bug free. Reliable. Dependable. Secure. Tested well.</strong></li>
<li>→<strong>Zero Overhead</strong> - Only 1 byte due to the power of the error handling, can be configured will full power.</li>
<li>→<strong>Static Inline Functions if you want them</strong> (optional) - Eliminating function call overhead to 0 if you wish, for improved performance.</li>
<li>→<strong>Custom allocators</strong> - if you want it.</li>
<li>→<strong>Custom error handling</strong> - if you want it.</li>
<li>→<strong>Safe functions</strong> warn the programmer about NULL values and unused return values. Can be configured to not compile if not Secure. Optional null-check macros in every library function. Does not use any of <code>"gets", "fgets", "strcpy", "strcat", "sprintf", "vsprintf", "scanf", "fscanf", "system", "chown", "chmod", "chgrp", "alloca", "execl", "execle", "execlp", "execv", "execve", "execvp", "bcopy", "bzero"</code>. You can configure it to never use any unsafe functions.</li>
<li>→<strong>Portable</strong> - works on all platforms, using platform specific features (using #ifdefs) to make functions better and faster.</li>
<li>→<strong>Multithreading support</strong> (optional), with list_comprehension_multithreaded (accepts any number of threads, works in parallel using portable C11 threads)</li>
<li>→<strong>Networking support</strong> (optional), using libcurl - making it extremely easy to download websites and arrays of websites - features other languages do not have.</li>
<li>→Very good and thorough <strong>Error Handling</strong> and <strong>allocation overflow</strong> checking (good for <strong>Security and Robustness</strong>) in the functions.
Allows the programmer to dynamically choose to catch all errors in the functions with a handler (default or custom), or to ignore them. No need to ALWAYS say "if (.....) if you don't want to. Can be changed at runtime.</li>
<li>→<strong>Public Domain</strong> so you make the code how you want. (No need to "propitiate" to some "god" of some library).</li>
<li>→<strong>Minimal abstractions or indirection of any kind or needless slow things that complicate things</strong> - macros, namespace collision, typedefs, structs, object-orientation messes, slow compilation times, bloat, etc., etc.</li>
<li>→<strong>No namespace pollution</strong> - you can generate your <span style=font-style:normal;><b>own version</b></span> with any prefix you like!</li>
<li>→<strong>Relies <span style=font-style:normal;>minimally</span> on C libraries - it can be fully decoupled from LIB C and can be statically linked.</strong></li>
<li>→<span style=font-style:normal;><b>Very small</b></span> - 13K Lines of Code (including Doxygen comments and following of Best Practices)</li>
<li>→<strong>No Linkage Issues or dependency hell</strong></li>
<li>→<strong>Thorough and clear documentation</strong>, with examples of usage.</li>
<li>→<strong>No licensing restrictions whatsoever - use it for your engineering project, your startup, your Fortune 500 company, your personal project, your throw-away script, your government.</strong></li>
<li>→<strong>Makes C like Python or Perl or Ruby in many ways - or more easy</strong></li>
<li>→<strong>Easy Straightforward Transpilation Support</strong> - to make current code, much faster - all without any bloat (See transpile_slow_scripting_into_c.rb).
<li><h4>In many cases, there is now a direct mapping of functions from other languages into optimized C.
See the example script in this repository. This makes optimizing your Python / Perl / Ruby / PHP etc. script very easy, either manually or through the use of AI.</h4></li>
</ul>
</p>
</div>
<div class=pane style='border: 0;border-right: 1px dotted rgb(200, 200, 200); background-color: rgb(255, 255, 190);'>
<div class="library-details"><h2 style=color:green;><i>Foundationallib Features</i></h2>
<p class=feature>
<strong>Functional Programming Features</strong> - <code>map, reduce, filter,</code> List Comprehensions in C and much more!</p>
<p class=feature><strong>Expands C's Primitives for easy manipulation of data types</strong> such as Arrays, Strings, <code>Dict</code>, <code>Set</code>, <code>FrozenDict</code>, <code>FrozenSet</code> - <strong>and enables easy manipulation, modification,
alteration, comparison, sorting, counting, IO (printing) and duplication of these at a very comfortable level</strong> -
something very, very rare in C or C++, <i>all without any overhead.</i></p>
<p class=feature><strong>More comfortable IO</strong> - read and write entire files with ease, and convert
complex types into strings or print them on the screen with ease. </p>
<p class=feature><strong>A powerful general purpose Foundational Library</strong> - <i>which has anything and
everything you need</i> - from <code>replace_all()</code> to <code>replace_memory()</code> to <code>find_last_of()</code> to
to <code>list_comprehension()</code> to <code>shellescape()</code> to <code>read_file_into_string()</code> to
<code>string_to_json()</code> to <code>string_to_uppercase()</code> to <code>to_title_case()</code> to <code>read_file_into_array()</code> to <code>read_files_into_array()</code> to <code>map()</code>
to <code>reduce()</code> to <code>filter()</code> to <code>list_comprehension_multithreaded()</code> to <code>frozen_dict_new_instance()</code>
to <code>backticks()</code> - everything you would want to make quick and optimally efficient C programs, this has it.</p>
<div style='height: 1px; border: 0;border-bottom: 1px dashed rgb(200, 200, 200);'></div>
<p class=performance><span>Helps to make programs hundreds of times faster than other languages with similar ease of creation.</span>
<hr>
<p class=feature><strong>Easily take advantage of CPU cores with list_comprehension_multithreaded()</strong>.<br><br>You can specify the number of threads, the transform and the filter functions, and this will transform your data - all in parallel. Don't have a multithreaded environment? Then disable it (set the flag).</p>
<hr>
<h3>You don't want to be reinventing the wheel and hoping that your memory allocation is secure enough - and then failing. <strong>Security Is Paramount.</strong></h3>
<h3>You don't want to be waiting <span style='color:rgb(240, 0, 0);'>a day</span> for an operation to complete when it could take <span style='color:rgb(30, 30, 255);'>less than an hour</span>.</h3>
<br><p>This library is founded on very strong and unequivocal goals and philosophy. In fact, I have written many articles about the foundation of this library and more relevantly the broader context. See the Articles folder - for some of the foundation of this library.</p>
<br><p>This library is an ideal and a dream - not just a Software Library. As such, I would highly suggest that you support me in this mission. Even if it's different from the status quo. Are you a Rust or Zig fan? Then make a Rust or Zig version of this ideal. Let's go. Give me an email.</p>
</div>
</div>
<br>
No Copyright - Public Domain - 2023, Gregory Cohen <gregorycohennew@gmail.com>
DONATION REQUEST: If this free software has helped you and you find
it valuable, please consider making a donation to support the ongoing
development and maintenance of this project. Your contribution helps
ensure the availability of this library to the community and encourages
further improvements.
Donations can be made at:
https://www.paypal.com/paypalme/cfoundationallib
Note: The best way to contact me is through email, not social media. Please
feel very free to email me if you want to express feedback, suggest an
improvement, desire to collaborate on this free and open source
project, want to support me, or want to create something great.
Complacency and obstructionism and whining are not tolerated.
I desire to make this library the best theoretically possible,
so please, let us connect.
<h1>This code is in the public domain, fully.
You can do whatever you want with it.
See docs.html for API reference.

</h1>
<h1>Here's some examples of some things you can do easily with Foundationallib.<br><br>
<h3>Use it for scripting purposes...</h3>
</h1>

<h1>Take control of the Web - in C.<br><br></h1>

2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
# foundationallib
<h2>Finally, a cross-platform, portable, well-designed, secure, robust, maximally-efficient C foundational library — Making Engineering And Computing Fast, Secure, Responsive And Easy.</h2>
<br>
<ul class="features-list">
<li><strong>Enables better Engineering Solutions and Security broadly and foundationally where Software Creation or Development or Script Creation is concerned - whether this be on a local, business, governmental or international basis, and makes things easier - and Computing in General.</strong> Don't Reinvent the Wheel - Use Good Wheels - Be Safe And Secure.</li>
<br>
<li><strong>Enables a free-flowing dynamic computer usage that you need, deserve and should have, simply because you have a computer. With full speed and with robustness. You deserve to be able to use your computer wholly and fully, with proper and fast operations.</strong></li>
<br><li><strong>Enables flexibility and power - makes C accessible to the masses (and faster and more secure) with easy usage and strives to bring people up, not degrade the character or actions of people.</strong> This is a fundamental and unequivocal philosophy difference between this library and many subsections of Software Engineering and the mainstream engineering establishment. For instance, in Python, you cannot read a file easily – you have to read it line-by-line or open a file, read the lines, then close it. With this library, you can efficiently read 10,000 files in one function call. This library gives power. Any common operation, there ought to be a powerful function for.<br><br>We should not bitch around with assembly when we don't want to; we should also have full speed. Some old "solutions" deliver neither, then culturally degrade programmers because their tools are bad - actually, it just degrades programmers, and gives them bad tools. COBOL is an example ...<br><br>Human technology is about empowerment – people must fight for it to be empowerment, we don't have time to have AI systems kill us because we want to have bad tools and be weak. We must fight.</li>
</ul>
<br>
<ul>
<h2>About Foundationallib</h2>
<li>→<strong>Cross platform</strong> - works perfectly in embedded, server, desktop, and all platforms - tested for Windows and UNIX - 64-bit and 32-bit, includes a 3-aspect test suite, with more to come.</li>
<li>→<strong>Bug free. Reliable. Dependable. Secure. Tested well.</strong></li>
<li>→<strong>Zero Overhead</strong> - Only 1 byte due to the power of the error handling, can be configured will full power.</li>
<li>→<strong>Static Inline Functions if you want them</strong> (optional) - Eliminating function call overhead to 0 if you wish, for improved performance.</li>
<li>→<strong>Custom allocators</strong> - if you want it.</li>
<li>→<strong>Custom error handling</strong> - if you want it.</li>
<li>→<strong>Safe functions</strong> warn the programmer about NULL values and unused return values. Can be configured to not compile if not Secure. Optional null-check macros in every library function. Does not use any of <code>"gets", "fgets", "strcpy", "strcat", "sprintf", "vsprintf", "scanf", "fscanf", "system", "chown", "chmod", "chgrp", "alloca", "execl", "execle", "execlp", "execv", "execve", "execvp", "bcopy", "bzero"</code>. You can configure it to never use any unsafe functions.</li>
<li>→<strong>Portable</strong> - works on all platforms, using platform specific features (using #ifdefs) to make functions better and faster.</li>
<li>→<strong>Multithreading support</strong> (optional), with list_comprehension_multithreaded (accepts any number of threads, works in parallel using portable C11 threads)</li>
<li>→<strong>Networking support</strong> (optional), using libcurl - making it extremely easy to download websites and arrays of websites - features other languages do not have.</li>
<li>→Very good and thorough <strong>Error Handling</strong> and <strong>allocation overflow</strong> checking (good for <strong>Security and Robustness</strong>) in the functions.
Allows the programmer to dynamically choose to catch all errors in the functions with a handler (default or custom), or to ignore them. No need to ALWAYS say "if (.....) if you don't want to. Can be changed at runtime.</li>
<li>→<strong>Public Domain</strong> so you make the code how you want. (No need to "propitiate" to some "god" of some library).</li>
<li>→<strong>Minimal abstractions or indirection of any kind or needless slow things that complicate things</strong> - macros, namespace collision, typedefs, structs, object-orientation messes, slow compilation times, bloat, etc., etc.</li>
<li>→<strong>No namespace pollution</strong> - you can generate your <span style=font-style:normal;><b>own version</b></span> with any prefix you like!</li>
<li>→<strong>Relies <span style=font-style:normal;>minimally</span> on C libraries - it can be fully decoupled from LIB C and can be statically linked.</strong></li>
<li>→<span style=font-style:normal;><b>Very small</b></span> - 13K Lines of Code (including Doxygen comments and following of Best Practices)</li>
<li>→<strong>No Linkage Issues or dependency hell</strong></li>
<li>→<strong>Thorough and clear documentation</strong>, with examples of usage.</li>
<li>→<strong>No licensing restrictions whatsoever - use it for your engineering project, your startup, your Fortune 500 company, your personal project, your throw-away script, your government.</strong></li>
<li>→<strong>Makes C like Python or Perl or Ruby in many ways - or more easy</strong></li>
<li>→<strong>Easy Straightforward Transpilation Support</strong> - to make current code, much faster - all without any bloat (See transpile_slow_scripting_into_c.rb).
<li><h4>In many cases, there is now a direct mapping of functions from other languages into optimized C.
See the example script in this repository. This makes optimizing your Python / Perl / Ruby / PHP etc. script very easy, either manually or through the use of AI.</h4></li>
</ul>
</p>
</div>
<div class=pane style='border: 0;border-right: 1px dotted rgb(200, 200, 200); background-color: rgb(255, 255, 190);'>
<div class="library-details"><h2 style=color:green;>Foundationallib Features</h2>
<p class=feature>
<strong>Functional Programming Features</strong> - <code>map, reduce, filter,</code> List Comprehensions in C and much more!</p>
<p class=feature><strong>Expands C's Primitives for easy manipulation of data types</strong> such as Arrays, Strings, <code>Dict</code>, <code>Set</code>, <code>FrozenDict</code>, <code>FrozenSet</code> - <strong>and enables easy manipulation, modification,
alteration, comparison, sorting, counting, IO (printing) and duplication of these at a very comfortable level</strong> -
something very, very rare in C or C++, <i>all without any overhead.</i></p>
<p class=feature><strong>More comfortable IO</strong> - read and write entire files with ease, and convert
complex types into strings or print them on the screen with ease. </p>
<p class=feature><strong>A powerful general purpose Foundational Library</strong> - <i>which has anything and
everything you need</i> - from <code>replace_all()</code> to <code>replace_memory()</code> to <code>find_last_of()</code> to
to <code>list_comprehension()</code> to <code>shellescape()</code> to <code>read_file_into_string()</code> to
<code>string_to_json()</code> to <code>string_to_uppercase()</code> to <code>to_title_case()</code> to <code>read_file_into_array()</code> to <code>read_files_into_array()</code> to <code>map()</code>
to <code>reduce()</code> to <code>filter()</code> to <code>list_comprehension_multithreaded()</code> to <code>frozen_dict_new_instance()</code>
to <code>backticks()</code> - everything you would want to make quick and optimally efficient C programs, this has it.</p>
<div style='height: 1px; border: 0;border-bottom: 1px dashed rgb(200, 200, 200);'></div>
<p class=performance><span>Helps to make programs hundreds of times faster than other languages with similar ease of creation.</span>
<hr>
<p class=feature><strong>Easily take advantage of CPU cores with list_comprehension_multithreaded()</strong>.<br><br>You can specify the number of threads, the transform and the filter functions, and this will transform your data - all in parallel. Don't have a multithreaded environment? Then disable it (set the flag).</p>
<hr>
<h3>You don't want to be reinventing the wheel and hoping that your memory allocation is secure enough - and then failing. <strong>Security Is Paramount.</strong></h3>
<h3>You don't want to be waiting <span style='color:rgb(240, 0, 0);'>a day</span> for an operation to complete when it could take <span style='color:rgb(30, 30, 255);'>less than an hour</span>.</h3>
<br><p>This library is founded on very strong and unequivocal goals and philosophy. In fact, I have written many articles about the foundation of this library and more relevantly the broader context. See the Articles folder - for some of the foundation of this library.</p>
<br><p>This library is an ideal and a dream - not just a Software Library. As such, I would highly suggest that you support me in this mission. Even if it's different from the status quo. Are you a Rust or Zig fan? Then make a Rust or Zig version of this ideal. Let's go. Give me an email.</p>
</div>
</div>
<br>
No Copyright - Public Domain - 2023, Gregory Cohen <gregorycohennew@gmail.com>
DONATION REQUEST: If this free software has helped you and you find
it valuable, please consider making a donation to support the ongoing
development and maintenance of this project. Your contribution helps
ensure the availability of this library to the community and encourages
further improvements.
Donations can be made at:
https://www.paypal.com/paypalme/cfoundationallib
Note: The best way to contact me is through email, not social media. Please
feel very free to email me if you want to express feedback, suggest an
improvement, desire to collaborate on this free and open source
project, want to support me, or want to create something great.
Complacency and obstructionism and whining are not tolerated.
I desire to make this library the best theoretically possible,
so please, let us connect.
<pre><code>
Mirror Links
Blog - https://foundationallib.wordpress.com/
Github - https://github.com/gregoryc/foundationallib
Ruby Gem Mirror - https://rubygems.org/gems/foundational_lib
Ruby Gem Mirror - https://rubygems.org/gems/foundational_lib2
Library Instagram - https://www.instagram.com/foundationallib
Google Drive Mirrors
ZIP - https://drive.google.com/file/d/1bK2njCRsH4waTm4LP16sloPQawk7JIR5/view?usp=sharing
TAR.GZ - https://drive.google.com/file/d/1RCA1yy9R3cEqI_X9Lv0fxqh-zgNCK005/view?usp=sharing
TAR.BZ2 - https://drive.google.com/file/d/1ljdlI_fEnMS_X5WmuhI1qavhgseWlD5j/view?usp=sharing
</code></pre>
<h1>This code is in the public domain, fully.
You can do whatever you want with it.
See docs.html for API reference.

</h1>
<h1>Here's some examples of some things you can do easily with Foundationallib.<br><br>
<h3>Use it for scripting purposes...</h3>
</h1>

<h1>Take control of the Web - in C.<br><br></h1>

2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.02
Platform Agnostic SEcurity TOkens are a specification for secure stateless tokens.
This is an implementation of PASETO tokens, and the PASERK key management extensions,
in ruby, with runtime static type checking provided by Sorbet.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Reliable contract definition, data validation, and type checking for Ruby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
A Ruby dialect that includes types in the language. Transpiles to Ruby and RBS by leveraging the ruby-next and irbs gems. Type checks with steep.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Rubyt is a ruby gem that provides type checking functionality. It includes support for various types such as Boolean, Integer, String, Array, Hash and more. This gem is designed to enforce type safety, facilitating the creation of readable and maintainable code. It includes custom error handling for type mismatches. With its ease of use and integration, it can seamlessly fit into existing projects.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
TypedOperation is a command pattern implementation where inputs can be defined with runtime type checks. Operations can be partially applied.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.01
Run-time type checker and transformer for Ruby
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity