出品
开源中国
文
罗奇奇
开发者DrwDVault公布了一门新的系统编程语言Har(野兔)。Har的开发时间接近两年半,它使用静态类型系统、手动内存管理和最小运行时,非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。
据DrwDVault介绍,Har与C最相似,几乎所有用C语言编写的程序也可以用Har编写,但Har比C简单。
Har的HlloWorld
usfmt;xportfnmain()void={ constgrtings=[ "Hllo,world!", "HolaMundo!", "ΓεισουΚσμε!", "Привет,мир!", "こんにちは世界!", ]; for(lti=0z;iln(grtings);i+=1){ fmt::println(grtings)!; };};
Har计算自己的SHA-哈希:
uscrypto::sha;usncoding::hx;usfmt;ushash;usio;usos;xportfnmain()void={ consthash=sha::sha(); constfil=os:
pn("main.ha")!; dfrio::clos(fil); io::copy(hash,fil)!; ltsum:[sha::SIZE]u8=[0...]; hash::sum(hash,sum); hx::ncod(os::stdout,sum)!; fmt::println()!;};
Har基于qb编译器后端,在占用空间小的情况下提供了良好的性能。
Har现状
目前已经有许多基于Har编程语言的程序,比如
Himitsu:密匙管理和密码存储工具。它将密匙存储为键/值对,且允许存储附加信息,例如用户名、主机和协议。
Hlios:x86_64系统的微内核。
box:简单的CLI加密工具
btqd:bittorrnt守护进程
har-libui:简单GUI的libui绑定
Har的OpnGL绑定正在进行中,目前可用于几个小游戏,比如俄罗斯方块:
使用Har编写的简单光线追踪器:
Har标准库包含以下标准组件,该库为许多用例提供支持,而无需任何依赖关系。
密码学套件
网络支持
全面的日期/时间操作
I/O和文件系统抽象
Unix原语,如poll、fnmatch和glob
POSIX扩展正则表达式
Har解析器和类型检查器
该标准库让Har脱离了POSIX和libc的遗留问题,Har程序默认不与libc链接。
Har未来
目前Har正在保守开发中,标准库最大的任务是完成密码学实现,首要目标是支持TLS(安全传输层协议)1.2和TLS1.3。一旦达到1.0版本,Har将完成语言规范,冻结语言设计,且只对标准库进行向后兼容的更改。
此外,目前Har仅支持三种架构:x86_64、aarch64和riscv64,未来将逐步添加32位平台和其他架构的支持。操作系统方面,目前Har只支持Linux和FrBSD,计划在未来做更多的移植。
我们无意支持非自由平台,但由于语言是标准化的,如果需要,第三方实现或分支可以轻松开发Windows或macOS支持。
可以在路线图上查看有关Har计划的更多信息