<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Release] plutonium-http]]></title><description><![CDATA[<p dir="auto">Visit this project on Github: <a href="https://github.com/ryanocf/plutonium-http" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/ryanocf/plutonium-http</a></p>
<hr />
<h1>plutonium-http</h1>
<p dir="auto">Making it possible to do basic http GET, POST, PUT &amp; DELETE requests within ChaiScript.<br />
This plugin was mainly built for <a href="https://plutonium.pw/" target="_blank" rel="noopener noreferrer nofollow ugc">Plutonium MW3</a>.</p>
<hr />
<h2>Download</h2>
<p dir="auto">Download the <a href="https://github.com/ryanocf/plutonium-http/releases" target="_blank" rel="noopener noreferrer nofollow ugc">latest release</a> and put the <strong>plutonium-http.dll</strong> in your servers plugin folder.</p>
<hr />
<h2>Usage</h2>
<p dir="auto"><img src="https://forum.plutonium.pw/assets/plugins/nodebb-plugin-emoji/emoji/android/2757.png?v=6b8f0b5ad96" class="not-responsive emoji emoji-android emoji--exclamation" style="height:23px;width:auto;vertical-align:middle" title=":exclamation:" alt="❗" /> <strong>OpenSSL is currently not supported.</strong><br />
Every function returns the same Vector scheme:</p>
<pre><code class="language-c++">0: version // String
1: error // String
2: status // Int
3: reason // String
4: body // String
5: headers // Map
</code></pre>
<pre><code class="language-c++">/*
 * Params
 * url: String
 * route: String
 * headers: Map
 *
 * return: Vector
 */
http_get("http://example.com", "/route", ["header": "value"]);
</code></pre>
<pre><code class="language-c++">/*
 * Params
 * url: String
 * route: String
 * body: String
 * headers: Map
 * content_type: String
 *
 * return: Vector
 */
http_post("http://example.com", "/route", "body", ["header": "value"], "text/plain");
http_post("http://example.com", "/route", "param=body&amp;format=string", ["header": "value"], "application/x-www-form-urlencoded");
</code></pre>
<pre><code class="language-c++">/*
 * Params
 * url: String
 * route: String
 * body: String
 * headers: Map
 * content_type: String
 *
 * return: Vector
 */
http_put("http://example.com", "/route", "body", ["header": "value"], "text/plain");
http_put("http://example.com", "/route", "param=body&amp;format=string", ["header": "value"], "application/x-www-form-urlencoded");
</code></pre>
<pre><code class="language-c++">/*
 * Params
 * url: String
 * route: String
 * body: String
 * headers: Map
 * content_type: String
 *
 * return: Vector
 */
http_delete("http://example.com", "/route", "body", ["header": "value"], "text/plain");
http_delete("http://example.com", "/route", "param=body&amp;format=string", ["header": "value"], "application/x-www-form-urlencoded");
</code></pre>
<hr />
<h2>Errors</h2>
<pre><code class="language-c++">std::array&lt;std::string, 13&gt; error_list = {
    "Success",
    "Unknown",
    "Connection",
    "BindIPAddress",
    "Read",
    "Write",
    "ExceedRedirectCount",
    "Canceled",
    "SSLConnection",
    "SSLLoadingCerts",
    "SSLServerVerification",
    "UnsupportedMultipartBoundaryChars",
    "Compression"
};
</code></pre>
<hr />
<p dir="auto">Any questions or problems?<br />
Feel free to open an <a href="https://github.com/ryanocf/plutonium-http/issues/new" target="_blank" rel="noopener noreferrer nofollow ugc">issue</a> or visit this project on <a href="https://forum.plutonium.pw/topic/6755/release-plutonium-http">Plutonium</a>.</p>
<h2>Credits</h2>
<p dir="auto"><a href="https://github.com/yhirose/cpp-httplib" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/yhirose/cpp-httplib</a><br />
<a href="https://github.com/ChaiScript/ChaiScript" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/ChaiScript/ChaiScript</a><br />
<a href="https://github.com/xensik/plutoscript" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/xensik/plutoscript</a></p>
]]></description><link>https://forum.plutonium.pw/topic/6755/release-plutonium-http</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 08:39:32 GMT</lastBuildDate><atom:link href="https://forum.plutonium.pw/topic/6755.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Dec 2020 01:07:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Release] plutonium-http on Sun, 06 Dec 2020 12:07:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ryano_" aria-label="Profile: ryano_"><bdi>ryano_</bdi></a><br />
you don't need to switch the library, but need a layer in between.</p>
<p dir="auto">you can make something like:</p>
<ul>
<li>
<p dir="auto">create 2 queues (requests and responses) with data and a chai callback</p>
</li>
<li>
<p dir="auto">create a worker thread that wakes up when requests not empty, process them and store the result in responses queue.</p>
</li>
<li>
<p dir="auto">create a hook at server frame, if responses not empty, call the chai callback with the response data.</p>
</li>
</ul>
<p dir="auto">and the chai functions ('http_get '...) just store the data and callback in requests queue.</p>
]]></description><link>https://forum.plutonium.pw/post/29984</link><guid isPermaLink="true">https://forum.plutonium.pw/post/29984</guid><dc:creator><![CDATA[xensik]]></dc:creator><pubDate>Sun, 06 Dec 2020 12:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to [Release] plutonium-http on Sun, 06 Dec 2020 07:56:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/xensik" aria-label="Profile: xensik"><bdi>xensik</bdi></a><br />
Thanks for the feedback.<br />
Yeah, I knew that tho I wanted to use an easy to port library (c++ -&gt; chai).</p>
<p dir="auto">I haven't put that much thoughts into it tbh. but I will look into options on making the functions like tasks/threads.<br />
I don't have that high hopes bc. plugins are getting loaded/injected into the running server process sooo.. yeah I probably have to switch the library.</p>
<p dir="auto">For now, the best use case would be to do requests at the plugin's initialization and don't mess with it too much while players are on the server.</p>
]]></description><link>https://forum.plutonium.pw/post/29964</link><guid isPermaLink="true">https://forum.plutonium.pw/post/29964</guid><dc:creator><![CDATA[ryano_]]></dc:creator><pubDate>Sun, 06 Dec 2020 07:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to [Release] plutonium-http on Sat, 05 Dec 2020 21:26:09 GMT]]></title><description><![CDATA[<p dir="auto">The idea is cool, but you should make an asynchronous implementation.</p>
<p dir="auto">You are blocking the entire game thread with the http calls. this way is not very usable. Its specified in the cpp-httplib README that is a blocking library.</p>
]]></description><link>https://forum.plutonium.pw/post/29936</link><guid isPermaLink="true">https://forum.plutonium.pw/post/29936</guid><dc:creator><![CDATA[xensik]]></dc:creator><pubDate>Sat, 05 Dec 2020 21:26:09 GMT</pubDate></item></channel></rss>