{"id":21162366,"url":"https://github.com/webankblockchain/liquid","last_synced_at":"2025-07-09T14:32:38.400Z","repository":{"id":40355949,"uuid":"348711422","full_name":"WeBankBlockchain/liquid","owner":"WeBankBlockchain","description":"Liquid 由微众银行区块链团队开发并完全开源，是一种嵌入式领域特定语言（ embedded Domain Specific Language，eDSL），能够用来编写运行于区块链底层平台FISCO BCOS的智能合约。","archived":false,"fork":false,"pushed_at":"2023-05-10T08:42:39.000Z","size":818,"stargazers_count":44,"open_issues_count":3,"forks_count":15,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-24T03:16:28.749Z","etag":null,"topics":["contract","rust"],"latest_commit_sha":null,"homepage":"https://liquid-doc.readthedocs.io/zh_CN/latest/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WeBankBlockchain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-17T13:01:09.000Z","updated_at":"2024-01-18T08:30:33.000Z","dependencies_parsed_at":"2023-02-05T19:45:55.212Z","dependency_job_id":null,"html_url":"https://github.com/WeBankBlockchain/liquid","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeBankBlockchain%2Fliquid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeBankBlockchain%2Fliquid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeBankBlockchain%2Fliquid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeBankBlockchain%2Fliquid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WeBankBlockchain","download_url":"https://codeload.github.com/WeBankBlockchain/liquid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225564222,"owners_count":17488981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contract","rust"],"created_at":"2024-11-20T13:25:50.225Z","updated_at":"2024-11-20T13:25:52.197Z","avatar_url":"https://github.com/WeBankBlockchain.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liquid - Makes Smart Contract Smarter\n\n[![GitHub license](https://img.shields.io/badge/%20license-Apache%202.0-green)](https://github.com/WeBankBlockchain/liquid/blob/main/LICENSE)\n[![Code Lines](https://tokei.rs/b1/github/WeBankBlockchain/liquid)](https://github.com/WeBankBlockchain/liquid)\n[![Latest release](https://img.shields.io/github/release/WebankBlockchain/liquid.svg)](https://github.com/WebankBlockchain/liquid/releases/latest)\n[![Language](https://img.shields.io/badge/Language-Rust-blue.svg)](https://www.rust-lang.org/)\n\nLiquid 由微众银行区块链团队开发并完全开源，是一种[嵌入式领域特定语言](http://wiki.haskell.org/Embedded_domain_specific_language)（ embedded Domain Specific Language，eDSL），能够用来编写运行于区块链底层平台[FISCO BCOS](https://github.com/FISCO-BCOS/FISCO-BCOS)的智能合约。\n\n## 关键特性\n\n### 安全（Security)\n\n- 支持在智能合约内部便捷地编写单元测试用例，可通过内嵌的区块链模拟环境直接在本地执行；\n\n- 算数溢出及内存越界安全检查；\n\n- 能够结合模糊测试等工具进行深度测试；\n\n- 未来将进一步集成形式化验证及数据隐私保护技术。\n\n### 性能（Performance）\n\n- 配合 LLVM 优化器，支持将智能合约代码编译为可移植、体积小、加载快 Wasm 格式字节码；\n\n- 对 Wasm 执行引擎进行了深度优化，并支持交易并行化等技术；\n\n- 结合 Tree-Shaking 等技术，进一步压缩智能合约体积。\n\n### 体验（Experience）\n\n- 支持使用大部分现代语言特性（如移动语义及自动类型推导等）；\n\n- 提供专有开发工具及编辑器插件辅助开发；\n\n- 丰富的标准库及第三方组件。\n\n### 可定制（Customization）\n\n- 能够根据业务需求对编程模型、语言文法的进行深度定制。\n\n- 未来还将进一步探索如何与隐私保护、跨链协同等功能相结合。\n\n## 合约示例\n\n使用 Liquid 编写的 HelloWorld 合约如下所示：\n\n```rust\n#![cfg_attr(not(feature = \"std\"), no_std)]\n\nuse liquid::storage;\nuse liquid_lang as liquid;\n\n#[liquid::contract]\nmod hello_world {\n    use super::*;\n\n    #[liquid(storage)]\n    struct HelloWorld {\n        name: storage::Value\u003cString\u003e,\n    }\n\n    #[liquid(methods)]\n    impl HelloWorld {\n        pub fn new(\u0026mut self) {\n            self.name.initialize(String::from(\"Alice\"));\n        }\n\n        pub fn get(\u0026self) -\u003e String {\n            self.name.clone()\n        }\n\n        pub fn set(\u0026mut self, name: String) {\n            self.name.set(name)\n        }\n    }\n\n    #[cfg(test)]\n    mod tests {\n        use super::*;\n\n        #[test]\n        fn get_works() {\n            let contract = HelloWorld::new();\n            assert_eq!(contract.get(), \"Alice\");\n        }\n\n        #[test]\n        fn set_works() {\n            let mut contract = HelloWorld::new();\n\n            let new_name = String::from(\"Bob\");\n            contract.set(new_name.clone());\n            assert_eq!(contract.get(), \"Bob\");\n        }\n    }\n}\n```\n\n## 技术文档\n\n阅读[Liquid 在线技术文档](https://liquid-doc.readthedocs.io/zh_CN/latest/index.html)，详细了解如何使用 Liquid。\n\n- [快速开始](https://liquid-doc.readthedocs.io/zh_CN/latest/docs/quickstart/prerequisite.html)\n\n- [基础语法](https://liquid-doc.readthedocs.io/zh_CN/latest/docs/contract/contract_mod.html)\n\n- [开发与测试](https://liquid-doc.readthedocs.io/zh_CN/latest/docs/dev_testing/development.html)\n\n- [参考](https://liquid-doc.readthedocs.io/zh_CN/latest/docs/advance/metaprogramming.html)\n\n## 架构设计\n\n![架构设计](https://liquid-doc.readthedocs.io/zh_CN/latest/_static/images/advance/liquid_arch.svg)\n\n## 社区\n\n- [智能合约编译技术专项兴趣小组](https://mp.weixin.qq.com/s/NfBZtPWxXdnP0XLLGrQKow)\n\n## 最小支持 Rust 版本（Minimum Supported Rust Version，MSRV）\n\nRust Nightly 1.52 或更高。\n\n## License\n\nLiquid 的开源协议为 Apache License 2.0，详情请参考[LICENSE](./LICENSE)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebankblockchain%2Fliquid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebankblockchain%2Fliquid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebankblockchain%2Fliquid/lists"}