<?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>DEV Community: Shixian Sheng</title>
    <description>The latest articles on DEV Community by Shixian Sheng (@kpcofgs).</description>
    <link>https://dev.to/kpcofgs</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%2F3231363%2F8a7b234b-7b38-4cb6-b1a4-66128969d86c.png</url>
      <title>DEV Community: Shixian Sheng</title>
      <link>https://dev.to/kpcofgs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kpcofgs"/>
    <language>en</language>
    <item>
      <title>I ran npm audit and DepGra on the same project — here's what each one caught</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sun, 15 Mar 2026 13:26:00 +0000</pubDate>
      <link>https://dev.to/kpcofgs/i-ran-npm-audit-and-depgra-on-the-same-project-heres-what-each-one-caught-3g1a</link>
      <guid>https://dev.to/kpcofgs/i-ran-npm-audit-and-depgra-on-the-same-project-heres-what-each-one-caught-3g1a</guid>
      <description>&lt;p&gt;I wanted to see how different tools handle the same dependency tree, so I ran both &lt;code&gt;npm audit&lt;/code&gt; and my open-source tool &lt;a href="https://github.com/KPCOFGS/depgra" rel="noopener noreferrer"&gt;DepGra&lt;/a&gt; against a real Next.js project with 1,312 packages. Here's what actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project
&lt;/h2&gt;

&lt;p&gt;The test subject is a production Next.js app with a 19,000-line &lt;code&gt;package-lock.json&lt;/code&gt;. 1,312 packages, 3,792 dependency relationships. A pretty typical mid-size project.&lt;/p&gt;

&lt;h2&gt;
  
  
  npm audit results
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;npm audit
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;npm audit reported &lt;strong&gt;10 vulnerabilities (3 moderate, 7 high)&lt;/strong&gt; across 8 packages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;serialize-javascript@6.0.2&lt;/code&gt; — RCE via RegExp.flags (high)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next@15.5.9&lt;/code&gt; — 2 advisories (high)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;minimatch@3.1.2&lt;/code&gt; and &lt;code&gt;minimatch@9.0.5&lt;/code&gt; — 3 ReDoS advisories each (high)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;flatted@3.3.3&lt;/code&gt; — unbounded recursion DoS (high)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rollup@4.54.0&lt;/code&gt; — arbitrary file write via path traversal (high)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ai@4.3.19&lt;/code&gt; — filetype whitelist bypass (moderate)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;jsondiffpatch@0.6.0&lt;/code&gt; — XSS via HtmlFormatter (moderate)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ajv@6.12.6&lt;/code&gt; and &lt;code&gt;ajv@8.17.1&lt;/code&gt; — ReDoS with &lt;code&gt;$data&lt;/code&gt; option (moderate)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;npm audit also tells you which vulnerabilities have fixes available and whether they'd require breaking changes. That's useful context DepGra doesn't provide.&lt;/p&gt;

&lt;h2&gt;
  
  
  DepGra results
&lt;/h2&gt;

&lt;p&gt;DepGra scanned the same &lt;code&gt;package-lock.json&lt;/code&gt; in 6.5 seconds. It found &lt;strong&gt;12 unique advisories&lt;/strong&gt; across 10 packages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CRITICAL  GHSA-5c6j-r48x-rmvq  serialize-javascript@6.0.2
HIGH      GHSA-23c5-xmqv-rm74  minimatch@3.1.2, minimatch@9.0.5
HIGH      GHSA-25h7-pfq9-p65f  flatted@3.3.3
HIGH      GHSA-3ppc-4f35-3m26  minimatch@3.1.2, minimatch@9.0.5
HIGH      GHSA-7r86-cg39-jmmj  minimatch@3.1.2, minimatch@9.0.5
HIGH      GHSA-h25m-26qc-wcjf  next@15.5.9
HIGH      GHSA-mw96-cpmx-2vgc  rollup@4.54.0
MEDIUM    GHSA-33vc-wfww-vjfv  jsondiffpatch@0.6.0
MEDIUM    GHSA-5f7q-jpqc-wp7h  next@15.5.9
MEDIUM    GHSA-9g9p-9gw9-jx7f  next@15.5.9
MEDIUM    GHSA-rwvc-j5jr-mgvh  ai@4.3.19
UNKNOWN   GHSA-2g4f-4pwh-qvx6  ajv@6.12.6, ajv@8.17.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What was different
&lt;/h2&gt;

&lt;p&gt;All 11 advisories from npm audit showed up in DepGra's results. But DepGra found one extra:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GHSA-5f7q-jpqc-wp7h (CVE-2025-59472)&lt;/strong&gt; — Next.js Unbounded Memory Consumption via PPR Resume Endpoint. Published January 28, 2026. npm audit didn't report it.&lt;/p&gt;

&lt;p&gt;Why? DepGra queries &lt;a href="https://osv.dev" rel="noopener noreferrer"&gt;OSV.dev&lt;/a&gt;, which aggregates vulnerability data from multiple sources. npm audit queries the GitHub Advisory Database. Sometimes one source has advisories the other hasn't ingested yet. In this case, OSV.dev had this CVE and GitHub's advisory database didn't surface it through npm audit at the time I tested.&lt;/p&gt;

&lt;p&gt;This isn't a knock on npm audit — advisory databases update at different speeds and there will always be timing differences. Tomorrow npm audit might catch something OSV.dev doesn't. The point is that checking against multiple data sources catches more.&lt;/p&gt;

&lt;p&gt;A few other differences worth noting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm audit classified &lt;code&gt;serialize-javascript&lt;/code&gt; as "high." DepGra pulled the full CVSS vector and scored it as CRITICAL. Same vulnerability, different severity classification depending on the data source.&lt;/li&gt;
&lt;li&gt;npm audit counts vulnerabilities by affected package instance (so minimatch across 4 &lt;code&gt;node_modules&lt;/code&gt; locations counts differently). DepGra counts unique CVE IDs.&lt;/li&gt;
&lt;li&gt;npm audit tells you if a fix is available and whether it's a breaking change. DepGra doesn't do remediation — it's a visibility tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What the graph adds
&lt;/h2&gt;

&lt;p&gt;The flat list above tells you what's vulnerable. But when I loaded the same scan into DepGra's graph view, two things jumped out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;minimatch is a chokepoint.&lt;/strong&gt; The flat list shows minimatch has 3 HIGH advisories, same as any other package. But the graph shows that &lt;code&gt;minimatch@3.1.2&lt;/code&gt; has packages like &lt;code&gt;@sentry/node&lt;/code&gt;, &lt;code&gt;@typescript-eslint/typescript-estree&lt;/code&gt;, and &lt;code&gt;glob&lt;/code&gt; all depending on it. If you're prioritizing what to fix, minimatch has a bigger blast radius than its severity alone suggests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;serialize-javascript's risk path is clear.&lt;/strong&gt; In the flat list, it's one line item. In the graph, you can see the chain: &lt;code&gt;copy-webpack-plugin&lt;/code&gt; and &lt;code&gt;terser-webpack-plugin&lt;/code&gt; both depend on &lt;code&gt;serialize-javascript@6.0.2&lt;/code&gt;. That CRITICAL RCE vulnerability has two separate paths into the project. You can trace each one visually.&lt;/p&gt;

&lt;p&gt;None of this is information you can't figure out from &lt;code&gt;npm ls&lt;/code&gt; and some digging. But having it laid out as a graph makes the topology obvious instead of something you have to reconstruct in your head.&lt;/p&gt;

&lt;h2&gt;
  
  
  How DepGra works
&lt;/h2&gt;

&lt;p&gt;The tech stack is pretty simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Parsers&lt;/strong&gt; for &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, and &lt;code&gt;go.mod&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OSV.dev batch API&lt;/strong&gt; for vulnerability data — sends all packages in one request, then fetches full details for any hits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; for storage, &lt;strong&gt;NetworkX&lt;/strong&gt; for graph analysis (centrality scoring, path finding)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flask&lt;/strong&gt; serves the REST API, &lt;strong&gt;Svelte + Cytoscape.js&lt;/strong&gt; renders the graph&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topological sort&lt;/strong&gt; for the DAG layout — O(V+E), handles 1,300+ nodes without choking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Python &lt;code&gt;requirements.txt&lt;/code&gt; specifically, it resolves transitive dependencies by querying the PyPI API, since requirements.txt doesn't include the dependency tree like a lockfile does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/KPCOFGS/depgra
&lt;span class="nb"&gt;cd &lt;/span&gt;depgra

&lt;span class="c"&gt;# Install&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;backend &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv venv .venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;span class="nb"&gt;cd &lt;/span&gt;frontend &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ..

&lt;span class="c"&gt;# Run&lt;/span&gt;
python run.py
&lt;span class="c"&gt;# Open http://127.0.0.1:5000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python run.py scan path/to/package-lock.json
python run.py scan requirements.txt &lt;span class="nt"&gt;--fail-on&lt;/span&gt; HIGH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What DepGra doesn't do
&lt;/h2&gt;

&lt;p&gt;I want to be upfront about the limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No auto-remediation. It won't suggest version upgrades or create fix PRs. &lt;code&gt;npm audit fix&lt;/code&gt; does this and DepGra doesn't.&lt;/li&gt;
&lt;li&gt;No container scanning, no license compliance, no secrets detection. It's specifically a dependency vulnerability visualizer.&lt;/li&gt;
&lt;li&gt;The severity classifications come from OSV.dev and can differ from what npm audit or Snyk reports for the same CVE.&lt;/li&gt;
&lt;li&gt;For very large graphs (1,000+ packages), the visualization gets dense. It's still functional but not as clean as a 50-package graph.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SBOM export (CycloneDX/SPDX)&lt;/li&gt;
&lt;li&gt;Remediation suggestions (which minimum version upgrade resolves a CVE)&lt;/li&gt;
&lt;li&gt;GitHub Action for CI/CD integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repo is at &lt;a href="https://github.com/KPCOFGS/depgra" rel="noopener noreferrer"&gt;github.com/KPCOFGS/depgra&lt;/a&gt;. MIT licensed. Feedback welcome.&lt;/p&gt;

</description>
      <category>security</category>
      <category>opensource</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>!!!!!! Critical React2Shell Vulnerability Exposes Millions of Web Apps to Remote Takeover !!!!!!</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Thu, 04 Dec 2025 14:40:57 +0000</pubDate>
      <link>https://dev.to/kpcofgs/-critical-react2shell-vulnerability-exposes-millions-of-web-apps-to-remote-takeover--408l</link>
      <guid>https://dev.to/kpcofgs/-critical-react2shell-vulnerability-exposes-millions-of-web-apps-to-remote-takeover--408l</guid>
      <description>&lt;p&gt;&lt;strong&gt;Like and comment this article so more people can see it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A security vulnerability with a critical CVSS score of &lt;strong&gt;10.0&lt;/strong&gt;, now widely known as &lt;strong&gt;"React2Shell,"&lt;/strong&gt; is threatening a substantial portion of the modern web. Tracked as &lt;strong&gt;CVE-2025-55182&lt;/strong&gt; in React and &lt;strong&gt;CVE-2025-66478&lt;/strong&gt; in Next.js, this flaw allows unauthenticated attackers to execute arbitrary code on servers running vulnerable applications. It is potentially affecting 82% of developers who use React, this is one of the most severe vulnerabilities ever disclosed in the JavaScript ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Understanding the Vulnerability: From Deserialization to Remote Code Execution&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At its core, the vulnerability is an &lt;strong&gt;unsafe deserialization flaw&lt;/strong&gt; within the React Server Components (RSC) architecture. The issue resides in key &lt;code&gt;react-server-dom-*&lt;/code&gt; packages (&lt;code&gt;-webpack&lt;/code&gt;, &lt;code&gt;-turbopack&lt;/code&gt;, &lt;code&gt;-parcel&lt;/code&gt;) used to communicate between server and client.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Root Cause&lt;/strong&gt;: The flaw exploits how these packages process serialized data from HTTP requests using React's "Flight" protocol. A security researcher discovered that the deserialization logic used a colon (&lt;code&gt;:&lt;/code&gt;) to navigate object properties without proper validation. By sending a specially crafted payload that references a non-existent property, an attacker could cause the server to crash or, more critically, manipulate the process to execute arbitrary JavaScript code.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Why It's So Dangerous&lt;/strong&gt;: Unlike many prototype pollution bugs that require a second flaw to be useful, this vulnerability provides a direct path to Remote Code Execution (RCE) in a single request. Attackers need no prior authentication, do not need to find a specific server function to target, and require no special configuration mistakes by developers. As one advisory starkly notes, even a brand-new Next.js application created with &lt;code&gt;create-next-app&lt;/code&gt; is vulnerable out of the box.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Scope of Impact: Who is Affected?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The vulnerability's reach is exceptionally broad due to React's dominance and the design of modern frameworks.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Affected Software&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Vulnerable Versions&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Patched Versions&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;React Packages&lt;/strong&gt; &lt;code&gt;react-server-dom-webpack&lt;/code&gt; &lt;code&gt;react-server-dom-turbopack&lt;/code&gt; &lt;code&gt;react-server-dom-parcel&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;19.0.0, 19.1.0, 19.1.1, 19.2.0&lt;/td&gt;
&lt;td&gt;19.0.1, 19.1.2, 19.2.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Next.js Framework&lt;/strong&gt; (Using App Router)&lt;/td&gt;
&lt;td&gt;15.0.0 – 15.0.4, 15.1.0 – 15.1.8, 15.2.0 – 15.2.5, 15.3.0 – 15.3.5, 15.4.0 – 15.4.7, 15.5.0 – 15.5.6, 16.0.0 – 16.0.6&lt;/td&gt;
&lt;td&gt;15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Next.js Canary Releases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;14.3.0-canary.77 and later&lt;/td&gt;
&lt;td&gt;Downgrade to stable 14.x or use 14.3.0-canary.76&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Crucially, an application is vulnerable if it &lt;em&gt;supports&lt;/em&gt; React Server Components, even if it does not explicitly use React Server Functions&lt;/strong&gt;. This means many developers may be at risk without realizing it.&lt;/p&gt;

&lt;p&gt;The impact extends beyond React and Next.js. Other frameworks and tools that bundle the vulnerable RSC implementation are also affected, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  React Router (unstable RSC APIs)&lt;/li&gt;
&lt;li&gt;  Waku&lt;/li&gt;
&lt;li&gt;  Redwood SDK&lt;/li&gt;
&lt;li&gt;  Parcel (&lt;code&gt;@parcel/rsc&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;  Vite RSC plugin (&lt;code&gt;@vitejs/plugin-rsc&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Immediate Actions for Development Teams&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Patch Immediately (Primary Solution)&lt;/strong&gt;&lt;br&gt;
The only complete fix is to upgrade dependencies. Teams should update their &lt;code&gt;package.json&lt;/code&gt; and ensure lock files are regenerated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# For Next.js users (npm example)&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;next@latest react@latest react-dom@latest

&lt;span class="c"&gt;# For projects managing React directly&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;react-server-dom-webpack@19.2.1
&lt;span class="c"&gt;# (Use the appropriate package and patched version: 19.0.1, 19.1.2, or 19.2.1)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After upgrading, &lt;strong&gt;rebuild and redeploy all applications&lt;/strong&gt;. Teams using Vercel hosting should note that while the platform applied temporary mitigations, the official patches must still be applied for full security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Detect Vulnerable Systems&lt;/strong&gt;&lt;br&gt;
For security teams managing large inventories, verifying patches can be challenging. Researchers have published a high-fidelity detection method to identify truly vulnerable hosts, differentiating them from those merely running RSC. The technique involves sending a specific HTTP POST request and checking for a characteristic error response containing &lt;code&gt;E{"digest"&lt;/code&gt; with a 500 status code. Open-source scanners based on this method are also available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Apply Runtime Protections&lt;/strong&gt;&lt;br&gt;
While patching is underway, organizations should leverage Web Application Firewalls (WAF) and runtime security tools. Major providers like &lt;strong&gt;Fastly&lt;/strong&gt; and &lt;strong&gt;Barracuda&lt;/strong&gt; have released virtual patches and updated rules to detect and block exploitation attempts based on known malicious request patterns. Solutions like &lt;strong&gt;Upwind&lt;/strong&gt; also offer runtime monitoring to detect RCE payload execution, such as unexpected shell commands or process spawning.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Coordinated Response and Current Threat Status&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The disclosure followed a responsible and coordinated process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Nov 29, 2025&lt;/strong&gt;: Researcher Lachlan Davidson reported the flaw.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Dec 1-2&lt;/strong&gt;: Maintainers prepared fixes and privately notified major hosting providers and ecosystem partners.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Dec 3&lt;/strong&gt;: Public disclosure and release of patches across the ecosystem.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>cybersecurity</category>
      <category>critical</category>
      <category>react</category>
    </item>
    <item>
      <title>I built a Chatbot GUI with Rust, Dioxus, and SQLite</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Wed, 03 Dec 2025 13:31:34 +0000</pubDate>
      <link>https://dev.to/kpcofgs/i-built-a-chatbot-gui-with-rust-dioxus-and-sqlite-3abk</link>
      <guid>https://dev.to/kpcofgs/i-built-a-chatbot-gui-with-rust-dioxus-and-sqlite-3abk</guid>
      <description>&lt;p&gt;Hey Dev.to Community! 👋&lt;/p&gt;

&lt;p&gt;I've been working on a project that combines several technologies I love, and I'm excited to share it with the community.&lt;/p&gt;

&lt;p&gt;Check out the my Github repo and let me know what you think!&lt;br&gt;
&lt;a href="https://github.com/KPCOFGS/RustyChat" rel="noopener noreferrer"&gt;https://github.com/KPCOFGS/RustyChat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RustyChat&lt;/strong&gt; - A native desktop application built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rust&lt;/strong&gt; for the backend logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dioxus&lt;/strong&gt; for the reactive UI framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; for conversation persistence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; : The AI models behind the scene&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides a clean, native GUI for interacting with Ollama APIs&lt;/li&gt;
&lt;li&gt;Stores conversation history locally with SQLite&lt;/li&gt;
&lt;li&gt;Has a responsive interface&lt;/li&gt;
&lt;li&gt;Full conversation history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I'd love:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feedback from the community&lt;/li&gt;
&lt;li&gt;Feature suggestions&lt;/li&gt;
&lt;li&gt;Contributors if anyone's interested&lt;/li&gt;
&lt;li&gt;General thoughts on the architecture&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>rust</category>
      <category>llm</category>
      <category>gui</category>
      <category>database</category>
    </item>
    <item>
      <title>Celebrating 1000 Views: A Journey Through Open-Source Technology</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sat, 09 Aug 2025 11:53:10 +0000</pubDate>
      <link>https://dev.to/kpcofgs/celebrating-1000-views-a-journey-through-open-source-technology-ja5</link>
      <guid>https://dev.to/kpcofgs/celebrating-1000-views-a-journey-through-open-source-technology-ja5</guid>
      <description>&lt;p&gt;Hitting the 1000 views mark on my blog feels like a significant milestone. It’s a moment to reflect on the journey I’ve embarked on, sharing insights and experiences about open-source technologies. This achievement isn’t just a numbers game; it’s a testament to the ideas exchanged and the community that has grown around these technologies.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Open-Source Means to Me
&lt;/h3&gt;

&lt;p&gt;Open-source technology is more than just software; it’s a philosophy of collaboration and transparency. It’s like having a Wikipedia for code—everyone can read, edit, and improve it. For me, this means access to powerful tools without the restrictions of proprietary software. I’ve encountered projects that have transformed how I work, from coding environments to data analysis tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of Collaboration
&lt;/h3&gt;

&lt;p&gt;One of the key aspects of open-source is collaboration. Developers from around the world contribute, test, and refine code, leading to innovative solutions. A great example is Git, which has become a cornerstone in software development. It’s accessible to everyone, democratizing the process and fostering a sense of community.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Journey: From Curiosity to Contribution
&lt;/h3&gt;

&lt;p&gt;My journey into open-source began with curiosity. I wanted to understand how software was built and share that knowledge. Over time, I started contributing to projects, learning through practice and collaboration. Each contribution brought new challenges and growth, shaping my approach to technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Importance of Open-Source Today
&lt;/h3&gt;

&lt;p&gt;In today’s world, open-source technologies are everywhere—from mobile apps to cloud services. They underpin everything from the internet to machine learning, driving innovation and progress. Open-source promotes transparency, which is crucial in an era where trust in technology is essential. It empowers individuals and communities, breaking down barriers to entry and fostering inclusivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking Ahead
&lt;/h3&gt;

&lt;p&gt;As I move forward, I’m excited about the potential of open-source technologies. The journey so far has taught me resilience and adaptability. Challenges have been met with lessons that continue to shape my practice. I look ahead to exploring more tools and contributing to projects that inspire others.&lt;/p&gt;

</description>
      <category>celebration</category>
      <category>discuss</category>
    </item>
    <item>
      <title>NautilusTrader: The Open-Source Trading Platform</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Fri, 08 Aug 2025 22:20:46 +0000</pubDate>
      <link>https://dev.to/kpcofgs/nautilustrader-the-open-source-trading-platform-5dji</link>
      <guid>https://dev.to/kpcofgs/nautilustrader-the-open-source-trading-platform-5dji</guid>
      <description>&lt;p&gt;In the fast-paced world of algorithmic trading, having the right tools and platforms is crucial for success. NautilusTrader emerges as a sophisticated solution designed to empower quantitative traders and developers with cutting-edge technology. This platform not only enhances your trading strategy but also ensures that your research and deployment processes are seamless and efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is NautilusTrader?
&lt;/h3&gt;

&lt;p&gt;NautilusTrader is an open-source, high-performance algorithmic trading platform tailored for quantitative traders. It offers a unique blend of features, including backtesting capabilities with historical data, live trading deployment, multi-venue support, and more. The platform is built on a robust architecture that combines Rust for core components and Python for user-defined strategies, ensuring top-tier performance and reliability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is NautilusTrader Important?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backtesting and Strategy Development&lt;/strong&gt;:&lt;br&gt;
NautilusTrader allows users to backtest their trading strategies using historical data with nanosecond resolution. This level of precision ensures that strategies are thoroughly tested before deployment, minimizing the risk of failure in live trading environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Live Trading Deployment&lt;/strong&gt;:&lt;br&gt;
Once a strategy passes the backtesting phase, it can be deployed live without any code changes. The platform maintains parity between the research environment and production, ensuring consistent performance and behavior across both stages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-Venue Support&lt;/strong&gt;:&lt;br&gt;
NautilusTrader supports trading across multiple venues, including FX, Equities, Futures, Options, Crypto, and DeFi. This capability is particularly useful for market-making strategies and statistical arbitrage, where understanding multiple markets is essential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High-Performance Architecture&lt;/strong&gt;:&lt;br&gt;
The platform's use of Rust for core components ensures that it handles high-frequency trading with ease. Combined with Python's flexibility for custom scripts, NautilusTrader offers a powerful and scalable solution for even the most demanding trading strategies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizable Strategies&lt;/strong&gt;:&lt;br&gt;
Users can define their strategies using Python, Cython, or even Rust, depending on the complexity of their needs. This level of customization allows for tailored solutions that fit specific market conditions and objectives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community and Support&lt;/strong&gt;:&lt;br&gt;
NautilusTrader has a strong community presence, with active contributions from developers and users alike. The platform also provides comprehensive documentation and support channels, ensuring that users can resolve issues and stay updated on the latest features.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Key Features of NautilusTrader
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event-Driven Engine&lt;/strong&gt;: Processes trading events in real-time, enabling quick response to market dynamics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced Order Types&lt;/strong&gt;: Supports a wide range of order types, including stop-loss and trailing stops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Venue Trading&lt;/strong&gt;: Enables trading across multiple exchanges and markets simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backtesting with Historical Data&lt;/strong&gt;: Utilizes robust historical data to simulate trading scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jupyter Notebook Support&lt;/strong&gt;: Provides an interactive environment for testing and refining strategies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI/ML Integration&lt;/strong&gt;: Supports integration with machine learning models for sophisticated strategy development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why You Should Care
&lt;/h3&gt;

&lt;p&gt;In the competitive landscape of algorithmic trading, having access to a powerful platform like NautilusTrader can give you a significant edge. Whether you're a seasoned trader or a developer looking to break into quantitative trading, this tool offers the flexibility and performance needed to stay ahead of the curve.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nautechsystems/nautilus_trader" rel="noopener noreferrer"&gt;https://github.com/nautechsystems/nautilus_trader&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>trading</category>
      <category>new</category>
      <category>ai</category>
    </item>
    <item>
      <title>A New Technology You Should Know: Sniffnet</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sun, 06 Jul 2025 12:06:02 +0000</pubDate>
      <link>https://dev.to/kpcofgs/-a-new-technology-you-should-know-sniffnet-1gg0</link>
      <guid>https://dev.to/kpcofgs/-a-new-technology-you-should-know-sniffnet-1gg0</guid>
      <description>&lt;p&gt;In today’s digital age, understanding your internet usage is more important than ever. Whether you’re managing a home network, running a small business, or just curious about how much data you’re using online, Sniffnet offers a powerful yet user-friendly solution to monitor your internet traffic. Let’s dive into what Sniffnet is and why it’s an essential tool for anyone who wants to stay in control of their network activity.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t8i8fyemgu0z0yhu1rf.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t8i8fyemgu0z0yhu1rf.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Sniffnet?
&lt;/h2&gt;

&lt;p&gt;Sniffnet is a cross-platform application designed to help you inspect and analyze your internet traffic. It’s free, open-source, and available on Windows, macOS, and Linux, making it accessible to a wide range of users. The interface is intuitive, so even those new to network monitoring can navigate it with ease.&lt;/p&gt;




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

&lt;p&gt;Sniffnet comes packed with features that make it a versatile tool for network monitoring:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose Your Network Adapter:&lt;/strong&gt; Pick which network connection you want to monitor—whether it’s your home Wi-Fi or a cellular data connection.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply Filters:&lt;/strong&gt; Select filters to focus on specific types of traffic, such as downloads, uploads, or certain ports.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;View Statistics:&lt;/strong&gt; Get insights into your overall internet usage with detailed stats.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Charts:&lt;/strong&gt; Track traffic intensity in real time, making it easy to spot trends or suspicious activity.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimized Mode:&lt;/strong&gt; Keep an eye on your network even when the application is minimized.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import/Export PCAP Files:&lt;/strong&gt; Save and share comprehensive reports of your network captures.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify Services and Protocols:&lt;/strong&gt; Detect over 6000+ known services, protocols, trojans, and worms.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain Name &amp;amp; ASN Lookup:&lt;/strong&gt; Find out which domains and autonomous systems (ASNs) you’re connected to.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Network Connections:&lt;/strong&gt; Identify connections within your local network.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographical Location:&lt;/strong&gt; Discover the geographical location of remote hosts.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Favorites:&lt;/strong&gt; Save your most important network hosts for quick access.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notifications:&lt;/strong&gt; Set custom alerts for specific network events, like unusual traffic or connection attempts.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Themes:&lt;/strong&gt; Personalize your experience with a variety of styles, including support for custom themes.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;

&lt;p&gt;Sniffnet is easy to download and set up:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Download Sniffnet&lt;/strong&gt; from the &lt;a href="https://github.com/GyulyVGC/sniffnet/releases" rel="noopener noreferrer"&gt;GitHub releases page&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run the Application:&lt;/strong&gt; Open Sniffnet and select the network adapter you want to monitor.
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;GitHub: &lt;a href="https://github.com/GyulyVGC/sniffnet" rel="noopener noreferrer"&gt;https://github.com/GyulyVGC/sniffnet&lt;/a&gt;&lt;/p&gt;

</description>
      <category>new</category>
      <category>rust</category>
      <category>security</category>
      <category>technology</category>
    </item>
    <item>
      <title>Understanding RustOwl: A Visual Tool for Ownership and Lifetimes in Rust</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sat, 05 Jul 2025 11:56:44 +0000</pubDate>
      <link>https://dev.to/kpcofgs/understanding-rustowl-a-visual-tool-for-ownership-and-lifetimes-in-rust-344h</link>
      <guid>https://dev.to/kpcofgs/understanding-rustowl-a-visual-tool-for-ownership-and-lifetimes-in-rust-344h</guid>
      <description>&lt;p&gt;In the dynamic world of software development, tools that enhance code understanding are invaluable. RustOwl emerges as a powerful ally for Rust developers, offering a visual approach to understand variable ownership and lifetimes—a cornerstone of Rust's memory safety model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is RustOwl?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RustOwl is an interactive visualization tool that analyzes Rust source code to illustrate ownership and lifetimes of variables. When you hover over a variable or function call in your editor, RustOwl generates color-coded underlines indicating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Green&lt;/strong&gt;: The actual lifetime of the variable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blue&lt;/strong&gt;: Immutable borrowing—variables borrowed without moving.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purple&lt;/strong&gt;: Mutable borrowing—more restrictive than immutable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orange&lt;/strong&gt;: Variables moved or called after being moved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Red&lt;/strong&gt;: Lifetime errors, such as discrepancies between expected and actual lifetimes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why is it Important?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understanding ownership and lifetimes is crucial for writing correct Rust code. Ownership dictates that a variable can only be borrowed immutably unless it's moved or dropped. RustOwl simplifies this by visually highlighting these relationships, aiding in debugging and ensuring memory safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration with Editors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RustOwl integrates with popular editors like VS Code, Neovim, Emacs, and JetBrains IDEs through plugins or extensions. This integration allows for real-time feedback as you work, making the tool accessible across different workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once installed, opening a Rust file triggers an analysis. While initial runs may be slower due to compile caching, subsequent analyses are efficient. The tool's ability to visualize complex scenarios like nested ownership and multiple borrows makes it a valuable educational resource for both new and experienced developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Platform Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RustOwl is designed for diverse environments, with support for Windows, Arch Linux, Nix flake, and more. Build instructions cater to different installation preferences, whether through pre-built packages or manual compilation from source.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/cordx56/rustowl" rel="noopener noreferrer"&gt;https://github.com/cordx56/rustowl&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>dev</category>
      <category>new</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Graphite: Your Procedural Toolbox for 2D Content Creation</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sat, 28 Jun 2025 11:57:00 +0000</pubDate>
      <link>https://dev.to/kpcofgs/graphite-your-procedural-toolbox-for-2d-content-creation-481a</link>
      <guid>https://dev.to/kpcofgs/graphite-your-procedural-toolbox-for-2d-content-creation-481a</guid>
      <description>&lt;p&gt;In an age where digital tools are ever-evolving, &lt;strong&gt;Graphite&lt;/strong&gt; emerges as a cutting-edge, free, and open-source graphics editor designed for creators who demand flexibility and control. Tailored for those who thrive on procedural workflows, Graphite offers a unique blend of traditional raster and vector editing capabilities with modern procedural design principles.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of Procedural Graphics
&lt;/h3&gt;

&lt;p&gt;Procedural graphics enable artists to create complex visual effects and designs through algorithms rather than manual manipulation. This approach allows for scalability and adaptability, making it ideal for tasks ranging from game development to digital art. Graphite harnesses this power, providing users with a seamless workflow that combines layer-based compositing and node-based generative design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of Graphite
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infinite Canvas&lt;/strong&gt;: Create without boundaries—pan and zoom freely across an expansive canvas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Export Precision&lt;/strong&gt;: High-resolution exports ensure your work retains its quality across various platforms, from prints to digital displays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generative Tools&lt;/strong&gt;: Utilize AI-driven tools to generate patterns, textures, and more, adding a layer of automation to your creative process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modular Pipeline System&lt;/strong&gt;: Build custom pipelines for effects and animations, offering unparalleled control over the output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Studio-Grade Features&lt;/strong&gt;: Access professional-grade tools like vector editing, blurs, and shadows, all within an intuitive interface.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why Graphite?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Graphite&lt;/strong&gt; is still in its alpha phase, with ongoing updates and community contributions shaping its future. Its open-source nature invites collaboration from enthusiasts and professionals alike. Whether you're a seasoned creator or just starting out, Graphite provides the tools to realize your creative vision.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/GraphiteEditor/Graphite" rel="noopener noreferrer"&gt;https://github.com/GraphiteEditor/Graphite&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>graphics</category>
      <category>editor</category>
      <category>2d</category>
    </item>
    <item>
      <title>Dioxus: Web, Desktop, and Mobile Apps with a Single Codebase</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Thu, 26 Jun 2025 12:31:22 +0000</pubDate>
      <link>https://dev.to/kpcofgs/what-is-dioxus-web-desktop-and-mobile-apps-with-a-single-codebase-3go8</link>
      <guid>https://dev.to/kpcofgs/what-is-dioxus-web-desktop-and-mobile-apps-with-a-single-codebase-3go8</guid>
      <description>&lt;p&gt;In the ever-evolving landscape of application development frameworks, Dioxus stands out as a powerful, versatile tool designed to streamline the creation of modern web, desktop, and mobile applications. Developed with a focus on simplicity, performance, and cross-platform compatibility, Dioxus offers developers a robust set of features that set it apart from traditional frameworks like React or Angular. In this article, we'll explore what Dioxus is, its unique features, and why it's an essential addition to any developer's toolkit.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Dioxus?
&lt;/h2&gt;

&lt;p&gt;Dioxus is a fullstack web framework built in Rust, designed to allow developers to create cross-platform applications with minimal code. It supports web, desktop, mobile, and even server-side functionality, all from a single codebase. The framework emphasizes ease of use through its ergonomic state management, which combines elements of React, Solid, and Svelte, offering a seamless user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Platform Support&lt;/strong&gt;: Dioxus is built to support web, desktop, and mobile applications with just three lines of Rust code. This cross-platform capability eliminates the need for separate codebases for different platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ergonomic State Management&lt;/strong&gt;: Dioxus simplifies state management by using signals, a lightweight and intuitive way to handle reactivity. This system is designed to be both efficient and developer-friendly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrated Bundler&lt;/strong&gt;: The framework includes an integrated bundler that allows developers to easily deploy their applications to various platforms, including web, macOS, Linux, and Windows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hot-Reloading&lt;/strong&gt;: With a single command (&lt;code&gt;dx serve&lt;/code&gt;), Dioxus enables instant hot-reloading, allowing developers to see changes in milliseconds without restarting the application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;First-Class Mobile Support&lt;/strong&gt;: Dioxus supports both Android and iOS development directly from the Rust codebase, enabling native mobile apps with access to JNI and other platform-specific features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Server Functions&lt;/strong&gt;: The framework's built-in server functions allow developers to add backend functionality seamlessly from their frontend, supporting features like streaming, suspense, and websockets.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why is Dioxus Important?
&lt;/h2&gt;

&lt;p&gt;The importance of Dioxus lies in its ability to bridge the gap between traditional and modern application development paradigms. Unlike monolithic frameworks that require extensive boilerplate code, Dioxus offers a lightweight, developer-friendly approach to building complex applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages of Using Dioxus
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;: By leveraging optimized VirtualDOM technology, Dioxus delivers excellent performance across all platforms, including desktop and mobile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Platform Compatibility&lt;/strong&gt;: The ability to create web, desktop, and mobile apps from a single codebase reduces development time and effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: Dioxus's use of Rust allows for concise syntax and efficient memory management, making it suitable for both small and large-scale projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community Support&lt;/strong&gt;: With an active community contributing to its development and a strong ecosystem of libraries, Dioxus is well-supported and continuously evolving.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Comparisons with Other Frameworks
&lt;/h2&gt;

&lt;p&gt;Dioxus has been designed with specific advantages over other popular frameworks like Tauri, Leptos, Yew, egui, and Electron. Its key differentiators include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Native Rendering&lt;/strong&gt;: Unlike Tauri or Yew, Dioxus uses native rendering options for desktop and mobile, providing a more natural user experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State Management&lt;/strong&gt;: While Leptos and Iced offer alternative state management approaches, Dioxus's signal-based system is both efficient and developer-friendly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Platform Focus&lt;/strong&gt;: Unlike egui or Iced, Dioxus prioritizes cross-platform support, making it ideal for projects that require multiple platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maturity&lt;/strong&gt;: Although still relatively young compared to Electron, Dioxus has made significant progress in features and stability over the past year.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;GitHub: &lt;a href="https://github.com/DioxusLabs/dioxus" rel="noopener noreferrer"&gt;https://github.com/DioxusLabs/dioxus&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>rust</category>
      <category>fullstack</category>
      <category>framwork</category>
    </item>
    <item>
      <title>LocalSend: Your AirDrop Alternative</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Mon, 23 Jun 2025 12:35:31 +0000</pubDate>
      <link>https://dev.to/kpcofgs/localsend-your-airdrop-alternative-5hn1</link>
      <guid>https://dev.to/kpcofgs/localsend-your-airdrop-alternative-5hn1</guid>
      <description>&lt;p&gt;In today's digital age, we often find ourselves tethered to the internet for even the most mundane tasks. Sharing files usually means reaching for your phone or waiting for Wi-Fi. But imagine a world where you could send files securely without ever leaving your local network. That's exactly what LocalSend aims to achieve.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is LocalSend?
&lt;/h3&gt;

&lt;p&gt;LocalSend is a free, open-source app designed to facilitate secure and efficient file sharing between devices on your local network. Unlike traditional methods that rely on the internet or third-party servers, LocalSend allows you to send files directly to nearby devices without the need for an internet connection. This not only saves you from data limits but also ensures your files stay private.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is it Important?
&lt;/h3&gt;

&lt;p&gt;In a world where privacy is a growing concern, LocalSend stands out as a secure alternative to cloud-based solutions. Here's why it matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Internet Required:&lt;/strong&gt; Say goodbye to spotty Wi-Fi and unreliable connections. Share files instantly, regardless of your internet status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security First:&lt;/strong&gt; All data transmissions are encrypted with HTTPS, ensuring that your information remains protected from unauthorized access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Platform Compatibility:&lt;/strong&gt; Whether you're using an Android phone, a macOS laptop, or a Windows desktop, LocalSend adapts to your device preferences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Network Focus:&lt;/strong&gt; It's perfect for scenarios where a quick, reliable transfer is needed, such as sharing large files with colleagues or sending photos to neighbors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;At its core, LocalSend uses a secure communication protocol that enables devices on the same network to connect directly. Each connection is protected by a unique TLS/SSL certificate, ensuring maximum security without compromising speed. This method ensures that your data stays within your control and doesn't pass through centralized servers or the internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;Setting up LocalSend is straightforward, whether you're using it on an existing device or compiling the source code for development purposes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Download or Compile:&lt;/strong&gt; Install LocalSend from app stores (if available) or compile the source code if you prefer more control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure Settings:&lt;/strong&gt; Adjust settings like network interfaces and encryption to suit your needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start Sharing:&lt;/strong&gt; Use the app to send files securely across your local network.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encryption:&lt;/strong&gt; All data is encrypted during transmission, safeguarding against eavesdropping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Network Only:&lt;/strong&gt; Operates within your own network, avoiding dependency on external services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Platform Support:&lt;/strong&gt; Works with multiple operating systems and devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private and Secure:&lt;/strong&gt; No third-party access to your data, ensuring complete control.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Troubleshooting Tips
&lt;/h3&gt;

&lt;p&gt;While LocalSend is designed to be user-friendly, some users may encounter issues like devices not appearing in the network or slow speeds. Here are a few common solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check Router Settings:&lt;/strong&gt; Ensure that AP isolation is disabled on your router to allow device-to-device communication.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Mode Adjustment:&lt;/strong&gt; On Windows, switch to "Private Network" settings if devices aren't visible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encryption Adjustments:&lt;/strong&gt; Experiment with different encryption levels to optimize speed and security.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/localsend/localsend" rel="noopener noreferrer"&gt;https://github.com/localsend/localsend&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dart</category>
      <category>technology</category>
      <category>airdrop</category>
      <category>alternative</category>
    </item>
    <item>
      <title>A New Technology You Should Know: Typst</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Sat, 21 Jun 2025 16:42:15 +0000</pubDate>
      <link>https://dev.to/kpcofgs/a-new-technology-you-need-to-know-typst-3bag</link>
      <guid>https://dev.to/kpcofgs/a-new-technology-you-need-to-know-typst-3bag</guid>
      <description>&lt;p&gt;In an era where LaTeX remains dominant for document formatting, Typst emerges as a refreshing alternative. Designed to be as powerful as LaTeX but easier to learn, Typst combines simplicity with robust features, making it an appealing choice for both new and experienced users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of Typst
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in Markup&lt;/strong&gt;: Typst simplifies common formatting tasks. Headings, bold text, italics, and lists are handled seamlessly without requiring additional configurations or packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexible Functions&lt;/strong&gt;: Beyond basic markup, Typst offers flexible functions for custom tasks, allowing users to extend functionality while maintaining an intuitive interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrated Scripting System&lt;/strong&gt;: Typst's tight integration with a scripting system enables automation and dynamic content generation, similar to Python in Jupyter notebooks but tailored for document formatting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Math Typesetting and Bibliography Management&lt;/strong&gt;: Essential features like mathematical expressions and citation management are included out of the box, enhancing productivity without additional setup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fast Compile Times&lt;/strong&gt;: Utilizing incremental compilation, Typst ensures efficient performance by recompiling only changes, significantly faster than full recompiles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Friendly Error Handling&lt;/strong&gt;: Clear and helpful error messages guide users through troubleshooting, reducing frustration for learners.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Installation and Usage
&lt;/h3&gt;

&lt;p&gt;Typst is accessible via CLI through various package managers, accommodating different operating systems. Users can compile documents from the command line or use an online editor for a web-based workflow. The ability to watch files for changes and manage fonts enhances flexibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Creating a Fibonacci Table with Typst
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6q1x6sqte8yqp5j8wv7.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6q1x6sqte8yqp5j8wv7.png" alt="Image description" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This example illustrates Typst's ability to handle both static content and scripts, demonstrating its power in document creation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design Principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity through Consistency&lt;/strong&gt;: Features like &lt;code&gt;=&lt;/code&gt; for headings offer intuitive syntax, ensuring users can transfer knowledge across tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power through Composability&lt;/strong&gt;: Typst allows modular configurations, enabling flexible extensions without interface bloat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance through Incrementality&lt;/strong&gt;: Efficient compilation saves time, beneficial for large documents and frequent edits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/typst/typst" rel="noopener noreferrer"&gt;https://github.com/typst/typst&lt;/a&gt;&lt;/p&gt;

</description>
      <category>new</category>
      <category>technology</category>
      <category>markdown</category>
      <category>rust</category>
    </item>
    <item>
      <title>A New Technology You Should Know: MiniMax-M1</title>
      <dc:creator>Shixian Sheng</dc:creator>
      <pubDate>Fri, 20 Jun 2025 11:26:45 +0000</pubDate>
      <link>https://dev.to/kpcofgs/a-new-technology-you-should-know-minimax-m1-2m27</link>
      <guid>https://dev.to/kpcofgs/a-new-technology-you-should-know-minimax-m1-2m27</guid>
      <description>&lt;p&gt;In the rapidly evolving landscape of artificial intelligence, language models have become indispensable tools across various industries. Among these models, MiniMax-M1 stands out as a sophisticated development from MiniMax AI, designed to optimize performance while maintaining high computational efficiency. This article delves into what MiniMax-M1 is, its unique capabilities, and why it's a vital tool for anyone looking to leverage cutting-edge technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is MiniMax-M1?
&lt;/h2&gt;

&lt;p&gt;MiniMax-M1 is a state-of-the-art large language model (LLM) developed by MiniMax AI. It is trained on a diverse dataset, allowing it to understand and generate human-like text with remarkable accuracy. Unlike traditional models, MiniMax-M1 incorporates a specialized attention mechanism called "Lightning Attention," which significantly enhances its ability to process information efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technology Behind MiniMax-M1
&lt;/h2&gt;

&lt;p&gt;The backbone of MiniMax-M1 is its Lightning Attention mechanism, an innovation that enables the model to perform efficiently while maintaining high performance. Regular attention mechanisms can be computationally expensive, but Lightning Attention optimizes this process, allowing the model to handle complex tasks without sacrificing speed. This means users can expect quick responses even when dealing with intricate queries or tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capabilities and Performance
&lt;/h2&gt;

&lt;p&gt;MiniMax-M1 has been rigorously tested across various benchmarks, demonstrating its versatility in handling a wide range of tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Generation:&lt;/strong&gt; The model excels at generating code for web development, making it an invaluable tool for software developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Factuality:&lt;/strong&gt; It consistently produces accurate answers, making it suitable for applications requiring reliable information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem Solving:&lt;/strong&gt; MiniMax-M1 can tackle complex problems with ease, providing logical and structured solutions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Evaluation Metrics
&lt;/h3&gt;

&lt;p&gt;The model's performance is measured using industry-standard benchmarks like SWE-bench and TAU-bench. These evaluations highlight its capabilities in areas such as code generation, factual accuracy, and problem-solving. The results consistently place MiniMax-M1 among the top-performing models in its category.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Using MiniMax-M1
&lt;/h2&gt;

&lt;p&gt;To maximize the potential of MiniMax-M1, users should consider the following recommendations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inference Parameters:&lt;/strong&gt; Setting the temperature to 1.0 and top_p to 0.95 encourages creativity while maintaining logical coherence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Prompt:&lt;/strong&gt; Tailor the system prompt to the specific task at hand. For example, use a general-purpose prompt for summarization or a specialized one for web development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Deployment and Integration
&lt;/h2&gt;

&lt;p&gt;MiniMax-M1 is designed for scalability, making it suitable for both research environments and production deployment. The model can be integrated using either vLLM or Transformers frameworks, each offering unique advantages in terms of performance and resource management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Function Calling
&lt;/h3&gt;

&lt;p&gt;A standout feature of MiniMax-M1 is its ability to identify when external functions are required and output structured parameters. This capability is particularly useful for developers who need to integrate the model into existing codebases or workflows.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/MiniMax-AI/MiniMax-M1" rel="noopener noreferrer"&gt;https://github.com/MiniMax-AI/MiniMax-M1&lt;/a&gt;&lt;br&gt;
Huggingface: &lt;a href="https://huggingface.co/MiniMaxAI/MiniMax-M1-80k" rel="noopener noreferrer"&gt;https://huggingface.co/MiniMaxAI/MiniMax-M1-80k&lt;/a&gt;&lt;/p&gt;

</description>
      <category>new</category>
      <category>technology</category>
      <category>ai</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
