<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>OpenEmber Blog</title>
        <link>https://openember.org/en/blog</link>
        <description>OpenEmber Blog</description>
        <lastBuildDate>Wed, 01 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Welcome to the OpenEmber documentation site]]></title>
            <link>https://openember.org/en/blog/openember-docs-site</link>
            <guid>https://openember.org/en/blog/openember-docs-site</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This site is built with Docusaurus and explains what OpenEmber and EmberLite are, how the architecture is layered, how to build each repository, and how the ember CLI fits in.]]></description>
            <content:encoded><![CDATA[<p>This site is built with <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus</a> and explains what <strong>OpenEmber</strong> and <strong>EmberLite</strong> are, how the architecture is layered, how to build each repository, and how the <strong><code>ember</code></strong> CLI fits in.</p>
<p>Under <strong>Docs</strong> you will find:</p>
<ul>
<li class="">How OpenEmber relates to EmberLite</li>
<li class="">A high-level architecture overview</li>
<li class="">Build instructions for the main tree and EmberLite</li>
<li class="">Common <code>ember</code> commands and environment management (<code>add</code> / <code>use</code> / <code>list</code>)</li>
</ul>
<p>The ecosystem is evolving quickly—if you spot gaps or want new topics, please open an issue or PR on <a href="https://github.com/openember/openember-docs" target="_blank" rel="noopener noreferrer" class="">openember-docs</a>.</p>]]></content:encoded>
            <category>OpenEmber</category>
            <category>EmberLite</category>
            <category>文档</category>
        </item>
        <item>
            <title><![CDATA[Why EmberLite?]]></title>
            <link>https://openember.org/en/blog/why-emberlite</link>
            <guid>https://openember.org/en/blog/why-emberlite</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Even with OpenEmber (C++-first), we still need EmberLite in pure C: industrial, medical, and aerospace projects often prioritize determinism, static memory, and certifiability over language features. C keeps call graphs and resource usage easier to reason about and aligns well with MISRA-style rules.]]></description>
            <content:encoded><![CDATA[<p>Even with OpenEmber (C++-first), we still need <strong>EmberLite</strong> in <strong>pure C</strong>: industrial, medical, and aerospace projects often prioritize <strong>determinism</strong>, <strong>static memory</strong>, and <strong>certifiability</strong> over language features. C keeps call graphs and resource usage easier to reason about and aligns well with MISRA-style rules.</p>
<p>EmberLite is not meant to replace ROS2 or OpenEmber—it gives resource-constrained embedded Linux devices a lightweight node model and pub/sub messaging while staying on the same <strong>Kconfig + CMake</strong> and <strong><code>ember</code> CLI</strong> workflow, so teams can switch repos without relearning tooling.</p>
<p>Read more in the <a class="" href="https://openember.org/en/docs/intro">Introduction</a>.</p>]]></content:encoded>
            <category>EmberLite</category>
            <category>OpenEmber</category>
        </item>
    </channel>
</rss>