mmap-sync:Rust写的并发数据访问库,使用内存映射文件、零拷贝反序列化,免等待同步。

:Rust写的并发数据访问库,使用内存映射文件、零拷贝反序列化,免等待同步。其核心mmap-sync是一个Synchronizer结构,它提供了一个带有“写入”和“读取”方法的简单接口,允许用户读取和写入任何T实现或派生某些rkyv特征的Rust结构体()。数据存储在共享映射内存中,允许Synchronizer同时“写入”和“读取”。这使得它成为mmap-sync管理共享、并发数据访问的高效且灵活的工具。

相关推荐

封面图片

FlatBuffers 是一个跨平台序列化库,旨在最大限度地提高内存效率。 它允许您直接访问序列化数据而无需先对其进行解析/解包

FlatBuffers是一个跨平台序列化库,旨在最大限度地提高内存效率。它允许您直接访问序列化数据而无需先对其进行解析/解包,同时仍具有出色的向前/向后兼容性。FlatBuffers适用于C++、C#、C、Go、Java、Kotlin、JavaScript、Lobster、Lua、TypeScript、PHP、Python、Rust和Swift。它最初是在Google创建的,用于游戏开发和其他性能关键型应用程序。

封面图片

一种通用的高性能轻量级类STL的现代C++ B树

一种通用的高性能轻量级类STL的现代C++B树这个库是只有头文件的,所以除了包含头文件之外不需要额外的设置过程。此库在C++中实现了一个通用的仅head的STL类B树,包括支持将其用于内存映射磁盘文件和固定大小的分配器。B树是一种自平衡树数据结构,它维护排序的数据,并允许在对数时间内进行搜索、顺序访问、插入和删除。与其他自平衡二叉搜索树不同,B树非常适合于读取和写入相对较大数据块的存储系统,例如数据库和文件系统。

封面图片

资源C++并发编程实战 中文第2版 | C++ Concurrency in Action

资源名称:C++并发编程实战中文第2版C++ConcurrencyinAction描述:(非常棒的一本书!十分高清,并且带书签)第二版根据C++14和C++17标准进行更新和修订,涵盖了所有标准中最新的改动!本次修订版所要解答的问题是,如何用C++17写出优雅且健壮的多线程应用,并告诉你所有的细节!这是一本介绍C++并发和多线程编程的深度指南。本书从C++标准程序库的各种工具讲起,介绍线程管控、在线程间共享数据、并发操作的同步、C++内存模型和原子操作等内容。同时,本书还介绍基于锁的并发数据结构、无锁数据结构、并发代码,以及高级线程管理、并行算法函数、多线程应用的测试和除错。本书还通过附录及线上资源提供丰富的补充资料,以帮助读者更完整、细致地掌握C++并发编程的知识脉络。链接:https://www.aliyundrive.com/s/MJ5r78h2num

封面图片

Rill:Go语言的并发流处理工具包,简化并发编程中的样板代码,提供类型安全、批处理和错误处理功能

:Go语言的并发流处理工具包,简化并发编程中的样板代码,提供类型安全、批处理和错误处理功能主要特征轻量级:快速且模块化,可以轻松集成到现有项目中易于使用:管理goroutine、等待组和错误处理的复杂性被抽象出来并发:控制所有操作的并发级别批处理:提供一种简单的方法来批量组织和处理数据错误处理:提供一种结构化的方法来处理并发应用程序中的错误流式传输:以最小的内存占用处理实时数据流或大型数据集顺序保存:提供保存数据原始顺序的功能,同时仍允许并发处理高效利用资源:goroutine和分配的数量与数据大小无关通用:所有操作都是类型安全的,可以与任何数据类型一起使用函数式编程:基于函数式编程概念,使map、filter、flatMap等操作可用于基于通道的工作流程

封面图片

Asahi Linux或继续用Rust为Apple Silicon编写GPU驱动程序

AsahiLinux或继续用Rust为AppleSilicon编写GPU驱动程序尽管有一些逆向开发者在努力为AppleSiliconMac引入Linux支持,但当前的一大阻碍,就是缺乏对GPU硬件加速特性的支持。比如早期的AsahiLinux实验,主要围绕m1n1环境开展。而下一步,他们或继续使用Rust语言来编写AppleAGX的DRM内核图形驱动程序。Phoronix指出,当前AppleM1/M2上的Linux移植工作,还停留在基于LLVM管道的CPU图形加速(或称“软解”)。而知名贡献者AsahiLina表示,他们下一步打算用Rust编程语言,为AppleAGX提供新的内核GPU加速支持。其在周四的rust-for-linux邮件公告列表中写道:AppleSiliconMac的GPU运行固件具有相当复杂的共享内存数据结构,且需要由主机来管理。基于此,我们更倾向于使用Rust,因为它具有更高的安全性、元编程、以及通用表达能力。此前我已用Python编写过一款原型驱动程序,但它是通过远程主机在用户空间里运行的。但若拥抱更高级的编程语言,将对我们的GPU逆向工程、以及基于不同理念的驱动程序设计大有裨益。当然,我有意识到Linux上的Rust支持仍处于早期阶段,但我有雄心通过自愿学习来迎接相应的挑战。在稳定到可以向上游提交之前,驱动程序还需一些时间才能达到稳定(尤其是UAPI)。如果一切顺利,Rust最迟可在接下来几个内核周期中完成合并。PC版:https://www.cnbeta.com/articles/soft/1303641.htm手机版:https://m.cnbeta.com/view/1303641.htm

封面图片

NSA建议开发者考虑从C和C++转换为内存安全的编程语言

NSA建议开发者考虑从C和C++转换为内存安全的编程语言"NSA建议企业考虑在可能的情况下,从很少或没有提供固有内存保护的编程语言(如C/C++)转向内存安全语言。内存安全语言的一些例子是C#、Go、Java、Ruby和Swift,"NSA说。该机构引用了Google和微软最近的研究,他们在Chrome和Windows中分别有70%的安全问题与内存有关,其中许多是使用C和C++的结果,这两种语言更容易出现基于内存的漏洞。"NSA在"软件内存安全"网络安全信息表中指出:"恶意的网络行为者可以利用这些漏洞进行远程代码执行或其他不利影响,这往往可以损害一个设备,成为大规模网络入侵的第一步。常用的语言,如C和C++,在内存管理方面提供了很大的自由度和灵活性,同时严重依赖程序员对内存引用进行必要的检查。"因此,该机构建议尽可能使用内存安全语言,无论是应用开发还是系统编程。虽然大多数信息安全专家都熟悉关于内存安全语言的辩论,但也许不是所有的开发人员都熟悉。不过,也许他们应该熟悉,因为这是一个几十年前就存在的问题,正如Java创建者JamesGosling最近在讨论如何以及为什么创建Java时指出的。如果有的话,NSA的文件为开发者提供了一个清晰的、通俗的解释,说明了向内存安全语言转变背后的技术原因。在内存安全方面讨论最多的语言可能是Rust,它是作为C和C++的"替代品"的主要候选。Linux内核最近引入了Rust作为C语言的第二种语言,继Android开源项目之后。这些项目不会取代旧的C/C++代码,但对于新的代码会优先考虑Rust。另外,微软Azure首席技术官MarkRussinovich最近呼吁所有开发人员在所有新项目中使用Rust而不是C和C++。"通过利用这些类型的内存问题,恶意行为者--他们不受软件使用的正常预期约束--可能会发现他们可以在程序中输入不寻常的输入,导致内存以意想不到的方式被访问、写入、分配或删除,"NSA解释说。但是--正如专家们在关于Rust和C/C++的辩论中所指出的那样--NSA警告说,仅仅使用一种内存安全语言并不能默认排除将内存错误引入软件。此外,语言通常允许使用不是用内存安全语言编写的库。"即使使用内存安全语言,内存管理也不完全是内存安全的。大多数内存安全语言承认,软件有时需要执行不安全的内存管理功能来完成某些任务。因此,有一些类或函数被认为是非内存安全的,并允许程序员执行可能不安全的内存管理任务,"NSA说。"一些语言要求任何内存不安全的东西都要明确注释为内存不安全,以使程序员和程序的任何审查人员意识到它是不安全的。内存安全语言也可以使用以非内存安全语言编写的库,因此可以包含不安全的内存功能。尽管这些包含内存不安全机制的方式颠覆了固有的内存安全,但它们有助于定位可能存在内存问题的地方,允许对这些代码部分进行额外的审查。"NSA指出,向一些内存安全语言的转化可能要付出性能上的代价,这需要开发人员学习一种新的语言。它还指出,开发人员可以采取一些措施来加固非内存安全语言。例如,Google的Chrome团队正在探索多种方法来加固C++,但这些方法也会带来性能开销。在可预见的未来,C++将继续留在Chrome的代码库中。NSA建议进行静态和动态应用程序安全测试,以发现内存问题。它还建议探索内存加固方法,如控制流保护(CFG),它将对代码的执行位置进行限制。同样,建议使用地址空间布局随机化(ASLR)和数据执行预防(DEP)。...PC版:https://www.cnbeta.com.tw/articles/soft/1332577.htm手机版:https://m.cnbeta.com.tw/view/1332577.htm

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人