<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jeck Christopher Anog</title>
    <description>The latest articles on Forem by Jeck Christopher Anog (@jeck_christopheranog_4a2).</description>
    <link>https://forem.com/jeck_christopheranog_4a2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3147137%2F36562ff2-ee5f-4f67-899e-d794ff3b02ba.jpeg</url>
      <title>Forem: Jeck Christopher Anog</title>
      <link>https://forem.com/jeck_christopheranog_4a2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jeck_christopheranog_4a2"/>
    <language>en</language>
    <item>
      <title>New programming language 👀</title>
      <dc:creator>Jeck Christopher Anog</dc:creator>
      <pubDate>Fri, 27 Feb 2026 04:56:01 +0000</pubDate>
      <link>https://forem.com/jeck_christopheranog_4a2/new-programming-language-94c</link>
      <guid>https://forem.com/jeck_christopheranog_4a2/new-programming-language-94c</guid>
      <description>&lt;p&gt;Wanna try my Programming Language? You should check out &lt;a href="https://github.com/JeckAsChristopher/chidnat.git" rel="noopener noreferrer"&gt;https://github.com/JeckAsChristopher/chidnat.git&lt;/a&gt;&lt;br&gt;
it's a lightweight programming language yet it is expandable by standard libraries 🔥!!!&lt;/p&gt;

&lt;p&gt;classical &lt;strong&gt;hello world&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stdo("Hello, World!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;just easy syntax. no pressure, no high cortisol programming!&lt;/p&gt;

&lt;p&gt;also im open for contributions.&lt;/p&gt;

&lt;p&gt;that's all, have fun programming!&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FJeckAsChristopher%2Fchidnat.git" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FJeckAsChristopher%2Fchidnat.git" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwaredevelopment</category>
      <category>chidnat</category>
      <category>coding</category>
    </item>
    <item>
      <title>New shared objects linker on JavaScript nodejs u all waiting for!!!</title>
      <dc:creator>Jeck Christopher Anog</dc:creator>
      <pubDate>Sat, 10 May 2025 13:41:59 +0000</pubDate>
      <link>https://forem.com/jeck_christopheranog_4a2/new-shared-objects-linker-on-javascript-nodejs-u-all-waiting-for-232n</link>
      <guid>https://forem.com/jeck_christopheranog_4a2/new-shared-objects-linker-on-javascript-nodejs-u-all-waiting-for-232n</guid>
      <description>&lt;h1&gt;
  
  
  solijs
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;solijs&lt;/code&gt; is an npm package that allows you to dynamically link and execute functions from shared object (&lt;code&gt;.so&lt;/code&gt;) files directly within your JavaScript projects. It provides a fast, simple, and efficient way to call C/C++ functions without the need for complex build tools like &lt;code&gt;node-gyp&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Complex Build Tools:&lt;/strong&gt; Link &lt;code&gt;.so&lt;/code&gt; files to your Node.js project without needing &lt;code&gt;node-gyp&lt;/code&gt;, &lt;code&gt;ffi&lt;/code&gt;, or other build tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Platform Support:&lt;/strong&gt; Works on Linux, macOS, and Windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy to Use API:&lt;/strong&gt; Call C/C++ functions from &lt;code&gt;.so&lt;/code&gt; files with minimal code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast Execution:&lt;/strong&gt; Optimized for performance and minimal overhead.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;To install &lt;code&gt;solijs&lt;/code&gt;, use npm or yarn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;solijs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add solijs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create a &lt;code&gt;.so&lt;/code&gt; File (e.g., &lt;code&gt;libhello.so&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;First, create a shared object file (&lt;code&gt;.so&lt;/code&gt;). For example, write a simple C function that returns a value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// hello.c&lt;/span&gt;
&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;give_number&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compile it into a &lt;code&gt;.so&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcc &lt;span class="nt"&gt;-shared&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; libhello.so &lt;span class="nt"&gt;-fPIC&lt;/span&gt; hello.c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Create a JavaScript File to Call the Function
&lt;/h3&gt;

&lt;p&gt;Now, use &lt;code&gt;solijs&lt;/code&gt; to call the function inside the &lt;code&gt;.so&lt;/code&gt; file. Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;solijs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;solijs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;soPath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;__dirname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;libhello.so&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;symbol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;give_number&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// The function name in the .so file&lt;/span&gt;

&lt;span class="nx"&gt;solijs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;runValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;soPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Result from .so:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Error:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  API Reference
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;runText(soPath, symbol)&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;This method runs a function from the &lt;code&gt;.so&lt;/code&gt; file that doesn't return a value but outputs text to the console.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;soPath&lt;/code&gt; (string): Path to the &lt;code&gt;.so&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;symbol&lt;/code&gt; (string): The name of the function to execute.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;runValue(soPath, symbol)&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;This method executes a function from the &lt;code&gt;.so&lt;/code&gt; file that returns an integer value.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;soPath&lt;/code&gt; (string): Path to the &lt;code&gt;.so&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;symbol&lt;/code&gt; (string): The name of the function to execute.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;inspect(soPath)&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;This method retrieves the list of symbols available in the &lt;code&gt;.so&lt;/code&gt; file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;soPath&lt;/code&gt; (string): Path to the &lt;code&gt;.so&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example Project
&lt;/h2&gt;

&lt;p&gt;You can check out a sample project with the usage examples and the &lt;code&gt;.so&lt;/code&gt; files in the GitHub repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/your-github/repo" rel="noopener noreferrer"&gt;GitHub: solijs Example&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why You Should Try &lt;code&gt;solijs&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;If you're looking for a fast and easy way to integrate C/C++ code with JavaScript, &lt;code&gt;solijs&lt;/code&gt; is a game-changer. It eliminates the need for complex build processes and gives you the flexibility to use native code directly from your JavaScript environment. Plus, it's optimized for performance, making it ideal for performance-critical applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT&lt;/p&gt;

&lt;p&gt;link: &lt;a href="https://npmjs.com/package/solijs" rel="noopener noreferrer"&gt;https://npmjs.com/package/solijs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>native</category>
      <category>node</category>
    </item>
  </channel>
</rss>
