Hasty Briefsbeta

双语

Show HN: Hybrid-Transpiler – A tool to convert C++ to Rust and Go

2 months ago
  • #Rust
  • #C++
  • #transpiler
  • 一个将C++代码转换为现代安全语言(如Rust和Go)的源码到源码编译器(转译器),具有高准确性和性能。
  • 利用LLVM/Clang完整的C++解析器实现精确的类型系统映射和语义保留。
  • 将C++的RAII模式转换为Rust的所有权系统,并将智能指针转换为Rust/Go中的适当形式。
  • 支持STL容器转换、模板转泛型,以及将异常处理转换为Rust的Result/Option类型或Go的错误值。
  • 包含为Rust和Go生成的FFI接口,允许通过C ABI直接调用C++库。
  • 提供C++特性(如线程、协程和虚函数)到Rust和Go对应功能的详细映射方案。
  • 提供转译到Rust或Go时不同项目规模的性能指标和执行时间统计。
  • 包含完整的转译器项目目录结构,涵盖解析器、中间表示、代码生成和FFI组件。
  • 列出当前限制,如对宏展开、复杂模板元编程和内联汇编的支持尚不完善。
  • 在MIT许可证下鼓励通过提交错误报告、功能请求和拉取请求进行社区贡献。