<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[The Bytecode Club - Reverse Engineering Forum - Java Projects / Libraries]]></title>
		<link>https://the.bytecode.club/</link>
		<description><![CDATA[The Bytecode Club - Reverse Engineering Forum - https://the.bytecode.club]]></description>
		<pubDate>Wed, 29 Apr 2026 21:22:39 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Class-File-Searcher - Dump Classfiles & Strings from arbitrary data]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46065</link>
			<pubDate>Sat, 20 Jul 2024 17:17:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46065</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Class-File-Searcher</span><br />
+ Command-line tool for dumping Class-files &amp; Strings from arbitrary data<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Features</span><br />
+ Search and dump class-files from arbitrary data.<br />
+ Optionally dump the Strings from any found classes.<br />
+ All classes are sorted by package folder to make it easier to manage large class-file dumps.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How Does It Work</span><br />
+ We search for all instances of 'CAFEBABE' and store the data between each file, assuming the files are stored back to back.<br />
+ We make the following assumptions:<br />
+ It's uncompressed data<br />
+ It's not lying to us when it says 'CAFEBABE'<br />
+ The files are stored back to back, I.E. each chunk of 'CAFEBABE' represents another class once reached.<br />
<br />
<a href="https://github.com/Konloch/Class-File-Searcher" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Class-File-Searcher/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Install</span><br />
+ Download the <a href="https://github.com/Konloch/Class-File-Searcher/releases/latest" target="_blank" rel="noopener" class="mycode_url">latest release</a><br />
+ Install it to your system-path<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<img src="https://raw.githubusercontent.com/Konloch/Class-File-Searcher/master/.github/screenshot-1.gif" loading="lazy"  alt="[Image: screenshot-1.gif]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Class-File-Searcher</span><br />
+ Command-line tool for dumping Class-files &amp; Strings from arbitrary data<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Features</span><br />
+ Search and dump class-files from arbitrary data.<br />
+ Optionally dump the Strings from any found classes.<br />
+ All classes are sorted by package folder to make it easier to manage large class-file dumps.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How Does It Work</span><br />
+ We search for all instances of 'CAFEBABE' and store the data between each file, assuming the files are stored back to back.<br />
+ We make the following assumptions:<br />
+ It's uncompressed data<br />
+ It's not lying to us when it says 'CAFEBABE'<br />
+ The files are stored back to back, I.E. each chunk of 'CAFEBABE' represents another class once reached.<br />
<br />
<a href="https://github.com/Konloch/Class-File-Searcher" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Class-File-Searcher/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Install</span><br />
+ Download the <a href="https://github.com/Konloch/Class-File-Searcher/releases/latest" target="_blank" rel="noopener" class="mycode_url">latest release</a><br />
+ Install it to your system-path<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<img src="https://raw.githubusercontent.com/Konloch/Class-File-Searcher/master/.github/screenshot-1.gif" loading="lazy"  alt="[Image: screenshot-1.gif]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Antivirus+ - Antivirus Written In Java]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46064</link>
			<pubDate>Sat, 13 Jul 2024 19:17:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46064</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">General Features</span><br />
+ Mixes both static and dynamic file scanning<br />
+ Built on top of existing AV databases &amp; tools<br />
+ Experimental modules<br />
+ Large signature database<br />
+ The tool is still early in development<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Notes</span><br />
+ <span style="font-weight: bold;" class="mycode_b">Use in combination with Windows Defender or another trusted Antivirus</span><br />
+ <span style="font-weight: bold;" class="mycode_b">Quarantine does not actually quarantine</span> - Until we can rule out false positives from the yara rules we probably won't have a realtime quarantine<br />
+ Instead, we have a passive quarantine that requires the user to decide if they want to remove the files or not<br />
<br />
<a href="https://github.com/Konloch/Antivirus" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Antivirus/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Install</span><br />
+ Install the <a href="https://adoptium.net/temurin/releases/" target="_blank" rel="noopener" class="mycode_url">latest JRE</a> (Must be on Java 8 or higher)<br />
+ Download the <a href="https://github.com/Konloch/Antivirus/releases/latest" target="_blank" rel="noopener" class="mycode_url">latest release</a><br />
+ Run the latest release<br />
   + You'll have to wait for the initial download to finish before you can scan<br />
   + Due to the signature database size this can be up to an hour<br />
+ Report all issues <a href="https://github.com/Konloch/Antivirus/issues/new" target="_blank" rel="noopener" class="mycode_url">here</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-2.png" loading="lazy"  alt="[Image: screen-2.png]" class="mycode_img" /><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-3.gif" loading="lazy"  alt="[Image: screen-3.gif]" class="mycode_img" /><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-5.png" loading="lazy"  alt="[Image: screen-5.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">General Features</span><br />
+ Mixes both static and dynamic file scanning<br />
+ Built on top of existing AV databases &amp; tools<br />
+ Experimental modules<br />
+ Large signature database<br />
+ The tool is still early in development<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Notes</span><br />
+ <span style="font-weight: bold;" class="mycode_b">Use in combination with Windows Defender or another trusted Antivirus</span><br />
+ <span style="font-weight: bold;" class="mycode_b">Quarantine does not actually quarantine</span> - Until we can rule out false positives from the yara rules we probably won't have a realtime quarantine<br />
+ Instead, we have a passive quarantine that requires the user to decide if they want to remove the files or not<br />
<br />
<a href="https://github.com/Konloch/Antivirus" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Antivirus/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Install</span><br />
+ Install the <a href="https://adoptium.net/temurin/releases/" target="_blank" rel="noopener" class="mycode_url">latest JRE</a> (Must be on Java 8 or higher)<br />
+ Download the <a href="https://github.com/Konloch/Antivirus/releases/latest" target="_blank" rel="noopener" class="mycode_url">latest release</a><br />
+ Run the latest release<br />
   + You'll have to wait for the initial download to finish before you can scan<br />
   + Due to the signature database size this can be up to an hour<br />
+ Report all issues <a href="https://github.com/Konloch/Antivirus/issues/new" target="_blank" rel="noopener" class="mycode_url">here</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-2.png" loading="lazy"  alt="[Image: screen-2.png]" class="mycode_img" /><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-3.gif" loading="lazy"  alt="[Image: screen-3.gif]" class="mycode_img" /><br />
<img src="https://raw.githubusercontent.com/Konloch/Antivirus/master/.github/screen-5.png" loading="lazy"  alt="[Image: screen-5.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Malbolge.c4J - Malbolge '98 interpreter ported over to Java.]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46026</link>
			<pubDate>Sat, 07 Oct 2023 20:51:56 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46026</guid>
			<description><![CDATA[Malbolge.c4J is written to be an authentic port of the original '98 malbolge.c to Java.<br />
<br />
The goal was to preserve as much of the original C as possible, doing the minimum required changes to port it over to Java.<br />
<br />
<a href="https://github.com/Konloch/Malbolge.c4J" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Malbolge.c4J/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
Start by downloading the latest release, then download a malbolge script to run.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">hello_world.malbolge</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>('&amp;%:9]!~}|z2Vxwv-,POqponl&#36;Hjig%eB@@&gt;}=&lt;M:9wv6WsU2T|nm-,jcL(I&amp;%&#36;#"<br />
`CB]V?Tx&lt;uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg&#36;{z@&gt;</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>java -jar Malbolge.c4J.jar hello_world.malbolge</code></div></div><br />
This will interpret the malbolge script.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<br />
<img src="https://raw.githubusercontent.com/Konloch/Malbolge.c4J/main/.github/screenshot.png" loading="lazy"  alt="[Image: screenshot.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[Malbolge.c4J is written to be an authentic port of the original '98 malbolge.c to Java.<br />
<br />
The goal was to preserve as much of the original C as possible, doing the minimum required changes to port it over to Java.<br />
<br />
<a href="https://github.com/Konloch/Malbolge.c4J" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/Malbolge.c4J/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
Start by downloading the latest release, then download a malbolge script to run.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">hello_world.malbolge</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>('&amp;%:9]!~}|z2Vxwv-,POqponl&#36;Hjig%eB@@&gt;}=&lt;M:9wv6WsU2T|nm-,jcL(I&amp;%&#36;#"<br />
`CB]V?Tx&lt;uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg&#36;{z@&gt;</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>java -jar Malbolge.c4J.jar hello_world.malbolge</code></div></div><br />
This will interpret the malbolge script.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Media</span><br />
<br />
<img src="https://raw.githubusercontent.com/Konloch/Malbolge.c4J/main/.github/screenshot.png" loading="lazy"  alt="[Image: screenshot.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[OpenIRCd - Java IRC Server]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46016</link>
			<pubDate>Sun, 05 Mar 2023 21:50:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46016</guid>
			<description><![CDATA[OpenIRCd is a NIO IRC server I've been working on for a few days, it's fairly incomplete and is in the early stages of development.<br />
<br />
<a href="https://github.com/Konloch/OpenIRCd" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/OpenIRCd/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
Start by downloading the latest release, then you can launch the IRCd using the Java -jar flag.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>java -jar OpenIRCd-v0.1.0.jar</code></div></div><br />
This will create the default config under ./config.ini<br />
Adjust the configuration as needed, then restart the server.]]></description>
			<content:encoded><![CDATA[OpenIRCd is a NIO IRC server I've been working on for a few days, it's fairly incomplete and is in the early stages of development.<br />
<br />
<a href="https://github.com/Konloch/OpenIRCd" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<a href="https://github.com/Konloch/OpenIRCd/releases" target="_blank" rel="noopener" class="mycode_url">Click here to download the latest release</a><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
Start by downloading the latest release, then you can launch the IRCd using the Java -jar flag.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>java -jar OpenIRCd-v0.1.0.jar</code></div></div><br />
This will create the default config under ./config.ini<br />
Adjust the configuration as needed, then restart the server.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Java Echo Server]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46015</link>
			<pubDate>Fri, 03 Mar 2023 19:23:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46015</guid>
			<description><![CDATA[CR Echo Server is a low-level non-blocking echo server.<br />
<br />
It will echo-back the contents of the buffer if it has reached 1024 characters, or encountered a carriage return.<br />
<br />
<a href="https://github.com/Konloch/EchoServer/tree/main/CR-Echo-Server" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
<br />
You can run the Java Jar file directly, or you can use it as a library<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CREchoServer server = new CREchoServer(7, 1);<br />
server.start();</code></div></div><br />
Using telnet you can easily test the server.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>telnet localhost 7</code></div></div>]]></description>
			<content:encoded><![CDATA[CR Echo Server is a low-level non-blocking echo server.<br />
<br />
It will echo-back the contents of the buffer if it has reached 1024 characters, or encountered a carriage return.<br />
<br />
<a href="https://github.com/Konloch/EchoServer/tree/main/CR-Echo-Server" target="_blank" rel="noopener" class="mycode_url">Click here to view the project source code</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">How To Use</span><br />
<br />
You can run the Java Jar file directly, or you can use it as a library<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CREchoServer server = new CREchoServer(7, 1);<br />
server.start();</code></div></div><br />
Using telnet you can easily test the server.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>telnet localhost 7</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Vortex IO - Java NIO server]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46014</link>
			<pubDate>Fri, 03 Mar 2023 19:19:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46014</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> Vortex IO is an easy-to-use zero dependency low-level non-blocking socket server API for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/Vortex-IO/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/Vortex-IO/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/Vortex-IO/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/Vortex-IO/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;Socket-Server&lt;/artifactId&gt;<br />
  &lt;version&gt;0.9.4&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Echo Server Example</span><br />
<a href="https://github.com/Konloch/EchoServer/tree/main/CR-Echo-Server" target="_blank" rel="noopener" class="mycode_url">Click here for an echo server example.</a><br />
<br />
This is currently still in development.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> Vortex IO is an easy-to-use zero dependency low-level non-blocking socket server API for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/Vortex-IO/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/Vortex-IO/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/Vortex-IO/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/Vortex-IO/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;Socket-Server&lt;/artifactId&gt;<br />
  &lt;version&gt;0.9.4&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Echo Server Example</span><br />
<a href="https://github.com/Konloch/EchoServer/tree/main/CR-Echo-Server" target="_blank" rel="noopener" class="mycode_url">Click here for an echo server example.</a><br />
<br />
This is currently still in development.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Post Your Java Project]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46013</link>
			<pubDate>Fri, 03 Mar 2023 19:15:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46013</guid>
			<description><![CDATA[If you have created any kind of project in Java feel free to post it here to help spread the word.]]></description>
			<content:encoded><![CDATA[If you have created any kind of project in Java feel free to post it here to help spread the word.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DSLBuilder- Domain Specific Language Building API]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46010</link>
			<pubDate>Sun, 19 Feb 2023 11:34:33 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46010</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> Pure Java zero dependency domain specific language builder API with it's own runtime.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DSLBuilder/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DSLBuilder/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DSLBuilder/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DSLBuilder/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DSLBuilder&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">DSLBuilder Example</span><br />
<a href="https://github.com/Konloch/DSLBuilder/tree/main/src/test/java/com/konloch" target="_blank" rel="noopener" class="mycode_url">Click here to view an example DSL implementation using DSLBuilder</a>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> Pure Java zero dependency domain specific language builder API with it's own runtime.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DSLBuilder/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DSLBuilder/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DSLBuilder/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DSLBuilder/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DSLBuilder&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">DSLBuilder Example</span><br />
<a href="https://github.com/Konloch/DSLBuilder/tree/main/src/test/java/com/konloch" target="_blank" rel="noopener" class="mycode_url">Click here to view an example DSL implementation using DSLBuilder</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[StringVars - Java Solution for Recursive String Replacement ($var$, %var%)]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46009</link>
			<pubDate>Sat, 18 Feb 2023 21:45:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46009</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> StringVars is a zero dependency pure Java solution to create recursive String variables, such as &#36;var&#36; or %var%.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> Public Domain<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/StringVars/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/StringVars/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/StringVars/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/StringVars/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;StringVars&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Implementation Example</span><br />
<a href="https://github.com/Konloch/StringVars/blob/main/src/main/test/java/com/konloch/TestStringVars.java" target="_blank" rel="noopener" class="mycode_url">Click here for the StringHolderExample class</a><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>StringHolderExample example = new StringHolderExample()<br />
{<br />
 @Override<br />
 public String getString(String key)<br />
 {<br />
 return StringVars.getVariableValue('&#36;', ()-&gt; getMap().get(key),(vkey)-&gt; getMap().get(vkey));<br />
 }<br />
};<br />
 <br />
example.getMap().put("example", "Example: &#36;var&#36;");<br />
example.getMap().put("var", "This is a great example of how it functions!");<br />
<br />
System.out.println("Results: " + example.getString("example"));</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> StringVars is a zero dependency pure Java solution to create recursive String variables, such as &#36;var&#36; or %var%.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> Public Domain<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/StringVars/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/StringVars/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/StringVars/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/StringVars/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;StringVars&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Implementation Example</span><br />
<a href="https://github.com/Konloch/StringVars/blob/main/src/main/test/java/com/konloch/TestStringVars.java" target="_blank" rel="noopener" class="mycode_url">Click here for the StringHolderExample class</a><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>StringHolderExample example = new StringHolderExample()<br />
{<br />
 @Override<br />
 public String getString(String key)<br />
 {<br />
 return StringVars.getVariableValue('&#36;', ()-&gt; getMap().get(key),(vkey)-&gt; getMap().get(vkey));<br />
 }<br />
};<br />
 <br />
example.getMap().put("example", "Example: &#36;var&#36;");<br />
example.getMap().put("var", "This is a great example of how it functions!");<br />
<br />
System.out.println("Results: " + example.getString("example"));</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DynVarMap - Persistent Key Value Storage]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46008</link>
			<pubDate>Fri, 17 Feb 2023 06:28:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46008</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> DynVarMap is zero dependency easy and straight forward way to manage attribute-like runtime variables for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DynVarMap/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DynVarMap/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DynVarMap/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DynVarMap/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DynVarMap&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Creating a new instance</span><br />
To create a new instance all you need to do is create a new VarMap object.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>VarMap map = new VarMap();</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Creating &amp; accessing new variables</span><br />
To create a new variable all you need to do is define the type first, then enter the unique variable name you would like to use.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getBoolean("githubBoolExample");</code></div></div><br />
To supply a default value you can do it while grabbing the value.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getBoolean("githubBoolExample", false);</code></div></div><br />
To access the DynVarMap field, you need to call upon the getVar* function. This exposes the API to allow method chaining on the variable.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getVarBoolean("githubBoolExample", false).get();</code></div></div><br />
To fully leverage DynVarMap the trick is to chain methods to create easy-to-read one liners.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//create a new variable if it doesn't exist yet and check if it's been set to true, if it has execute the code below<br />
if(map.getVarBoolean("githubBoolExample").get())<br />
<br />
//create a new variable if it doesn't exist yet, check if it's been set as true, if it hasn't execute the code below, either way set it to being set as true<br />
if(!map.getVarBoolean("githubBoolExample").getThenSet(true))<br />
<br />
//create a new variable if it doesn't exist yet, add one, check if it equals any of the numbers, if it does execute the code below<br />
if(map.getVarInt("githubIntExample").add(1).equals(13, 21, 34, 55, 89))</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Time &amp; Custom Types</span><br />
DynVarMap supports custom types, one built-in example common is system time interaction. The Time type is based on the Long type, this means it comes with all of the helper functions such as add, subtract, divide and multiply.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>map.getTime("githubTimeExample").setNow(); //set the stop-watch to start counting now<br />
if(map.getVarTime("githubTimeExample").hasPassed(30_000)) //return true if 30 seconds have passed</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Serializing/saving &amp; loading from disk</span><br />
You can serialize the map using the built-in serializer, it uses it's own format similar to .ini. Deserializing supports .ini format as well if you perfer to have hand-written configurations.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>new VarMapSerializer("map.ini", map, true).save();<br />
new VarMapSerializer("map.ini", map, true).load();</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> DynVarMap is zero dependency easy and straight forward way to manage attribute-like runtime variables for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DynVarMap/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DynVarMap/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DynVarMap/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DynVarMap/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DynVarMap&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Creating a new instance</span><br />
To create a new instance all you need to do is create a new VarMap object.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>VarMap map = new VarMap();</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Creating &amp; accessing new variables</span><br />
To create a new variable all you need to do is define the type first, then enter the unique variable name you would like to use.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getBoolean("githubBoolExample");</code></div></div><br />
To supply a default value you can do it while grabbing the value.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getBoolean("githubBoolExample", false);</code></div></div><br />
To access the DynVarMap field, you need to call upon the getVar* function. This exposes the API to allow method chaining on the variable.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>boolean booleanValue = map.getVarBoolean("githubBoolExample", false).get();</code></div></div><br />
To fully leverage DynVarMap the trick is to chain methods to create easy-to-read one liners.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//create a new variable if it doesn't exist yet and check if it's been set to true, if it has execute the code below<br />
if(map.getVarBoolean("githubBoolExample").get())<br />
<br />
//create a new variable if it doesn't exist yet, check if it's been set as true, if it hasn't execute the code below, either way set it to being set as true<br />
if(!map.getVarBoolean("githubBoolExample").getThenSet(true))<br />
<br />
//create a new variable if it doesn't exist yet, add one, check if it equals any of the numbers, if it does execute the code below<br />
if(map.getVarInt("githubIntExample").add(1).equals(13, 21, 34, 55, 89))</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Time &amp; Custom Types</span><br />
DynVarMap supports custom types, one built-in example common is system time interaction. The Time type is based on the Long type, this means it comes with all of the helper functions such as add, subtract, divide and multiply.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>map.getTime("githubTimeExample").setNow(); //set the stop-watch to start counting now<br />
if(map.getVarTime("githubTimeExample").hasPassed(30_000)) //return true if 30 seconds have passed</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Serializing/saving &amp; loading from disk</span><br />
You can serialize the map using the built-in serializer, it uses it's own format similar to .ini. Deserializing supports .ini format as well if you perfer to have hand-written configurations.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>new VarMapSerializer("map.ini", map, true).save();<br />
new VarMapSerializer("map.ini", map, true).load();</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[FastStringUtils - Fast String Utilities (Split without regex)]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46007</link>
			<pubDate>Fri, 17 Feb 2023 06:16:31 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46007</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> FastStringUtils is an easy-to-use zero dependency collection of very fast String utility functions for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/FastStringUtils/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/FastStringUtils/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/FastStringUtils/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/FastStringUtils/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;FastStringUtils&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Splitting a String with a supplied separator</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//split the string using the space character as a separator<br />
String[] simpleSplitExample = FastStringUtils.split("Split Example", " ");<br />
<br />
//split the string using the space character as a separator, with a maximum search limit of 2<br />
String[] limiterSplitExample = FastStringUtils.split("Split Example With A Limit ", " ", 2);<br />
<br />
//split the string using the space character as a separator, with a maximum search limit of 2, and preserve the separator<br />
String[] limiterSplitExamplePreseveSeparator = FastStringUtils.split("Split Example With A Limit ", " ", 2, true);</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> FastStringUtils is an easy-to-use zero dependency collection of very fast String utility functions for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/FastStringUtils/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/FastStringUtils/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/FastStringUtils/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/FastStringUtils/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;FastStringUtils&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Splitting a String with a supplied separator</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//split the string using the space character as a separator<br />
String[] simpleSplitExample = FastStringUtils.split("Split Example", " ");<br />
<br />
//split the string using the space character as a separator, with a maximum search limit of 2<br />
String[] limiterSplitExample = FastStringUtils.split("Split Example With A Limit ", " ", 2);<br />
<br />
//split the string using the space character as a separator, with a maximum search limit of 2, and preserve the separator<br />
String[] limiterSplitExamplePreseveSeparator = FastStringUtils.split("Split Example With A Limit ", " ", 2, true);</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DiskLib - File Reader & Writer (Easy to use API)]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46006</link>
			<pubDate>Fri, 17 Feb 2023 05:56:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46006</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> DiskLib is an easy to use zero dependency Disk Writer &amp; Disk Reader with built in GZIP support for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DiskLib/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DiskLib/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DiskLib/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DiskLib/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DiskLib&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.1&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Write new file to disk / overwrite existing file</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>DiskReader.write("hello.txt", "Hello ");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Append to existing file</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>DiskReader.append("hello.txt", "World");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading Strings from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ArrayList&lt;String&gt; lines = DiskReader.read("hello.txt");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading String Arrays from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>String[] lines = DiskReader.readLines("hello.txt");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading Bytes from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>byte[] bytes = DiskReader.readBytes("hello.txt");</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> DiskLib is an easy to use zero dependency Disk Writer &amp; Disk Reader with built in GZIP support for Java.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/DiskLib/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DiskLib/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/DiskLib/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/DiskLib/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;DiskLib&lt;/artifactId&gt;<br />
  &lt;version&gt;1.0.1&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Write new file to disk / overwrite existing file</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>DiskReader.write("hello.txt", "Hello ");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Append to existing file</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>DiskReader.append("hello.txt", "World");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading Strings from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ArrayList&lt;String&gt; lines = DiskReader.read("hello.txt");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading String Arrays from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>String[] lines = DiskReader.readLines("hello.txt");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Reading Bytes from disk</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>byte[] bytes = DiskReader.readBytes("hello.txt");</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[HTTPRequest - HTTP Request wrapper (Easy to use API)]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46005</link>
			<pubDate>Fri, 17 Feb 2023 05:50:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46005</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> HTTPRequest is an easy-to-use zero dependency Java wrapper to read from a URL. Support for Cookies, proxies, UserAgent, post data and more.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/HTTPRequest/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/HTTPRequest/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/HTTPRequest/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/HTTPRequest/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;HTTPRequest&lt;/artifactId&gt;<br />
  &lt;version&gt;2.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">How to preform a simple request</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>HTTPRequest request = new HTTPRequest(new URL("https://google.com/"));<br />
 <br />
ArrayList&lt;String&gt; webpage = request.read();<br />
<br />
for(String line : webpage)<br />
    System.out.println(line);</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">How to preform a more complex request</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>HTTPRequest request = new HTTPRequest(new URL("https://google.com/"));<br />
request.setTimeout(10000);<br />
request.setPostData("postdata=yes&amp;awesome=yup");<br />
request.setReferer("http://google.com/");<br />
request.setCookie("cookies=yes;cool=sure");<br />
request.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 81)));<br />
<br />
ArrayList&lt;String&gt; webpage = request.read();<br />
for(String line : webpage)<br />
    System.out.println(line);<br />
<br />
for (Map.Entry&lt;String, List&lt;String&gt;&gt; k : request.getLastConnectionHeaders())<br />
    System.out.println("Header Value:" + k.toString());</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">About:</span> HTTPRequest is an easy-to-use zero dependency Java wrapper to read from a URL. Support for Cookies, proxies, UserAgent, post data and more.<br />
<span style="font-weight: bold;" class="mycode_b">License:</span> MIT License<br />
<span style="font-weight: bold;" class="mycode_b">Source:</span> <a href="https://konloch.com/HTTPRequest/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/HTTPRequest/</a><br />
<span style="font-weight: bold;" class="mycode_b">Download Jar:</span> <a href="https://konloch.com/HTTPRequest/releases/" target="_blank" rel="noopener" class="mycode_url">https://konloch.com/HTTPRequest/releases/</a><br />
<span style="font-weight: bold;" class="mycode_b">Add as maven dependency:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;dependency&gt;<br />
  &lt;groupId&gt;com.konloch&lt;/groupId&gt;<br />
  &lt;artifactId&gt;HTTPRequest&lt;/artifactId&gt;<br />
  &lt;version&gt;2.0.0&lt;/version&gt;<br />
&lt;/dependency&gt;</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">How to preform a simple request</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>HTTPRequest request = new HTTPRequest(new URL("https://google.com/"));<br />
 <br />
ArrayList&lt;String&gt; webpage = request.read();<br />
<br />
for(String line : webpage)<br />
    System.out.println(line);</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">How to preform a more complex request</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>HTTPRequest request = new HTTPRequest(new URL("https://google.com/"));<br />
request.setTimeout(10000);<br />
request.setPostData("postdata=yes&amp;awesome=yup");<br />
request.setReferer("http://google.com/");<br />
request.setCookie("cookies=yes;cool=sure");<br />
request.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 81)));<br />
<br />
ArrayList&lt;String&gt; webpage = request.read();<br />
for(String line : webpage)<br />
    System.out.println(line);<br />
<br />
for (Map.Entry&lt;String, List&lt;String&gt;&gt; k : request.getLastConnectionHeaders())<br />
    System.out.println("Header Value:" + k.toString());</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Post Your Java Library]]></title>
			<link>https://the.bytecode.club/showthread.php?tid=46004</link>
			<pubDate>Fri, 17 Feb 2023 05:43:34 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://the.bytecode.club/member.php?action=profile&uid=1">Konloch</a>]]></dc:creator>
			<guid isPermaLink="false">https://the.bytecode.club/showthread.php?tid=46004</guid>
			<description><![CDATA[If you are a Java library author feel free to post your library here to help spread the word.<br />
<br />
Here is a thread template to use when posting:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>[b]About:[/b] Description goes here<br />
[b]License:[/b] License info goes here<br />
[b]Source:[/b] Source link goes here<br />
[b]Download Jar:[/b] Releases goes here<br />
[b]Add as maven dependency:[/b]<br />
[code]<br />
&lt;dependency&gt;<br />
&nbsp;&nbsp;&lt;groupId&gt;your-group-id&lt;/groupId&gt;<br />
&nbsp;&nbsp;&lt;artifactId&gt;your-artifact-id&lt;/artifactId&gt;<br />
&nbsp;&nbsp;&lt;version&gt;your-version&lt;/version&gt;<br />
&lt;/dependency&gt;<br />
[&#92;/code]<br />
<br />
[b]any-title of a code example implementation of your library[/b]<br />
any explanation<br />
[code]<br />
any code example<br />
[&#92;/code]</code></div></div><br />
For the ending code tag remove the \ character.]]></description>
			<content:encoded><![CDATA[If you are a Java library author feel free to post your library here to help spread the word.<br />
<br />
Here is a thread template to use when posting:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>[b]About:[/b] Description goes here<br />
[b]License:[/b] License info goes here<br />
[b]Source:[/b] Source link goes here<br />
[b]Download Jar:[/b] Releases goes here<br />
[b]Add as maven dependency:[/b]<br />
[code]<br />
&lt;dependency&gt;<br />
&nbsp;&nbsp;&lt;groupId&gt;your-group-id&lt;/groupId&gt;<br />
&nbsp;&nbsp;&lt;artifactId&gt;your-artifact-id&lt;/artifactId&gt;<br />
&nbsp;&nbsp;&lt;version&gt;your-version&lt;/version&gt;<br />
&lt;/dependency&gt;<br />
[&#92;/code]<br />
<br />
[b]any-title of a code example implementation of your library[/b]<br />
any explanation<br />
[code]<br />
any code example<br />
[&#92;/code]</code></div></div><br />
For the ending code tag remove the \ character.]]></content:encoded>
		</item>
	</channel>
</rss>