mini Protobuf 库
<p>纯Python中的Mini Protobuf库.<br /><a href="https://github.com/dogtopus/minipb/workflows/Python%20package/badge.svg"><img alt="图片" src="https://github.com/dogtopus/minipb/workflows/Python%20package/badge.svg" /></a><br />
<br />
<strong>特征</strong></p>
<ul>
<li>纯Python。</li>
<li>功能丰富但轻巧。甚至可以在MicroPython上运行。</li>
<li>支持类似struct的格式字符串和类似ctypes的结构表示形式(即<strong>Structure._field_</strong>)作为架构。</li>
<li>支持通过<strong>RawWire</strong>API 对给定的序列化消息进行无模式检查。</li>
</ul>
<p> </p>
<pre>
<code class="language-python">import minipb
# Create the Wire object with schema
hello_world_msg = minipb.Wire([
('msg', 'U') # 'U' means UTF-8 string.
])
# Encode a message
encoded_msg = hello_world_msg.encode({
'msg': 'Hello world!'
})
# encoded_message == b'\n\x0cHello world!'
# Decode a message
decoded_msg = hello_world_msg.decode(encoded_msg)
# decoded_msg == {'msg': 'Hello world!'}
# Alternatively, use the format string
hello_world_msg = minipb.Wire('U')
# Encode a message
encoded_msg = hello_world_msg.encode('Hello world!')
# encoded_message == b'\n\x0cHello world!'
# Decode a message
decoded_msg = hello_world_msg.decode(encoded_msg)
# decoded_msg == ('Hello world!',)</code></pre>
<p> </p>
<p><strong>注意</strong>:<br />
尽管与官方Protobuf相比,<strong>minipb</strong>模块更轻巧,但通过加载后,模块本身仍使用约15KB的RAM。因此,建议在MicroPython实例上使用MiniPB脚本时,至少要有24KB的可用内存。对于更复杂的程序逻辑,建议具有至少48KB可用内存的实例。在具有大量RAM的系统(例如Pyboards和Unix构建)上,安装包括复制<strong>minipb.py</strong>到文件系统并用<strong>logging</strong>从<a href="https://github.com/micropython/micropython-lib">micropython-lib</a>安装模块。对于RAM受限的目标,有两个选项:交叉编译和冻结字节码。后者提供了最大的节省。有关更多说明,请参见<a href="http://docs.micropython.org/en/latest/reference/packages.html">官方文档</a>。</p>
<p> </p>
<p>**** Hidden Message *****</p>
真想把楼主隐藏的内容,贴在回帖里!哈哈哈,还是算了。我独乐乐吧 toothache 发表于 2020-6-15 09:31
真想把楼主隐藏的内容,贴在回帖里!哈哈哈,还是算了。我独乐乐吧
<p>隐藏不是目的,就是希望大家一起多讨论</p>
<p>正在找这个</p>
页:
[1]