Casbin是一个强大且高效的开源访问控制库,支持各种访问控制模型,用于在全局范围内执行授权。
执行一组规则就像在策略文件中列出主题、对象和期望的允许操作(或根据您的需要的任何其他格式)一样简单。 这在所有使用Casbin的流程中都是同义的。 开发者/管理员对布局、执行和授权条件的控制是完全的,这些都是通过模型文件设置的。 Casbin提供了一个Enforcer,用于根据提供给Enforcer的策略和模型文件验证传入的请求。
在一些情况下(如小项目等),我更喜欢用 Javascript ,同时也不介意使用 Typescript, 特别在一些较大的项目,特别是在使用 Svelte 进行表单验证的时候。 在使用 Svelte 不涉及表单验证等复杂场景的时候, 直接使用 Javascript 和 JSDoc 也可以获得不错的类型提示体验也很方便。 但在更复杂的场景如使用Superforms 和 Zod 进行表单验证的时候, Typescript 会有更友好的编码体验(类型提示和类型检查)。
Svelte 有 React 模块化,但程序体积更小,也有Vue 的简单,但我觉得Svelte 更新简洁。Svelte 是一种编译型框架,构建时将组件的逻辑转换为高效的原生JavaScript代码。 由于不使用虚拟DOM,Svelte具有卓越的性能表现,这点和React 、 Svelte 有非常大的不同,也是尝试它的一个原因之一。
thiserror
库提供了方便的派生宏,简化了Rust中自定义错误的创建和处理。
Zig 语言不干预堆内存分配, 没有隐藏的内存分配,没有new关键字或其他任何使用堆分配器的语言功能,整个堆都是由库或者用户代码而非语言本身所管理的。
Zig 标准库提供了一中分配内存的模式,这允许程序员精准选择标准库中内存如何完成分配,在标准库中不会背着你偷偷分配内存。
Zig 提供的分配器 allocator
有:
展示HTML canvas、wasm memory 和 zig 交互的一个小示例。