From d9d676df092c0b8640fae42fbc050fc774fa8598 Mon Sep 17 00:00:00 2001 From: "Abdel @ StarkWare" Date: Tue, 24 Oct 2023 18:04:11 +0200 Subject: [PATCH] :busts_in_silhouette: Add @abdelhamidbakhta as a contributor --- .all-contributorsrc | 25 ++++++++++++ README.md | 93 ++++++++++++++++++++++++++++----------------- 2 files changed, 83 insertions(+), 35 deletions(-) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000..6d0a8cc4 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,25 @@ +{ + "projectName": "cairo-zig", + "projectOwner": "keep-starknet-strange", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": true, + "commitConvention": "gitmoji", + "contributors": [ + { + "login": "abdelhamidbakhta", + "name": "Abdel @ StarkWare ", + "avatar_url": "https://avatars.githubusercontent.com/u/45264458?v=4", + "profile": "https://github.com/abdelhamidbakhta", + "contributions": [ + "code" + ] + } + ], + "contributorsPerLine": 7, + "linkToUsage": false +} diff --git a/README.md b/README.md index 3eaab873..70359782 100644 --- a/README.md +++ b/README.md @@ -20,40 +20,6 @@ - [Zig](https://ziglang.org/) -## ⚡ Why Zig? - -Choosing Zig for a third implementation of the Cairo VM brings several advantages, offering a unique blend of features not entirely covered by the existing Rust and Go implementations. - -### 1. Simplicity and Readability - -Zig aims for simplicity and clarity, enabling developers to read and understand the code quickly. It omits certain features like classes and exceptions to keep the language simple, which can be particularly useful for a VM where performance and maintainability are key. - -### 2. Performance - -Zig compiles to highly efficient native code, similar to Rust, making it an excellent choice for computationally-intensive tasks. The language's design gives the programmer direct control over memory and CPU, without unnecessary abstractions. - -### 3. Explicit Control with Safety Features - -Zig provides an environment where you have explicit control over memory allocation, similar to C and C++. While this does mean you're responsible for managing memory yourself, Zig offers certain safety features to catch common errors, like undefined behavior, during compile time or by providing runtime checks. This approach allows for a blend of performance and safety, making it a suitable choice for a VM where you often need fine-grained control. - -### 4. C Interoperability - -Zig offers first-class C interoperability without requiring any bindings or wrappers. This feature can be a game-changer for integrating with existing technologies. - -### 5. Flexibility - -Zig's comptime (compile-time) features offer powerful metaprogramming capabilities. This allows for expressive yet efficient code, as you can generate specialized routines at compile-time, reducing the need for runtime polymorphism. - -### 6. Minimal Dependencies - -Zig aims to reduce dependencies to a minimum, which could simplify the deployment and distribution of Cairo VM. This is particularly advantageous for systems that require high-reliability or have limited resources. - -### 7. Community and Ecosystem - -Although younger than Rust and Go, Zig's community is enthusiastic and rapidly growing. Adopting Zig at this stage means you can be a significant contributor to its ecosystem. - -By choosing Zig for the third implementation of Cairo VM, we aim to leverage these features to build a high-performance, reliable, and maintainable virtual machine. - ## ⚡ Wanna learn Zig fast? - [Zig language reference](https://ziglang.org/documentation/master/) @@ -113,10 +79,67 @@ Here are some resources to help you get started: - [sig](https://github.com/Syndica/sig) has been a great source of inspiration for the project structure and the way to use Zig. - [nektro](https://github.com/nektro/) for the [zig-time](https://github.com/nektro/zig-time) library. + +## ⚡ Why Zig? + +Choosing Zig for a third implementation of the Cairo VM brings several advantages, offering a unique blend of features not entirely covered by the existing Rust and Go implementations. + +### 1. Simplicity and Readability + +Zig aims for simplicity and clarity, enabling developers to read and understand the code quickly. It omits certain features like classes and exceptions to keep the language simple, which can be particularly useful for a VM where performance and maintainability are key. + +### 2. Performance + +Zig compiles to highly efficient native code, similar to Rust, making it an excellent choice for computationally-intensive tasks. The language's design gives the programmer direct control over memory and CPU, without unnecessary abstractions. + +### 3. Explicit Control with Safety Features + +Zig provides an environment where you have explicit control over memory allocation, similar to C and C++. While this does mean you're responsible for managing memory yourself, Zig offers certain safety features to catch common errors, like undefined behavior, during compile time or by providing runtime checks. This approach allows for a blend of performance and safety, making it a suitable choice for a VM where you often need fine-grained control. + +### 4. C Interoperability + +Zig offers first-class C interoperability without requiring any bindings or wrappers. This feature can be a game-changer for integrating with existing technologies. + +### 5. Flexibility + +Zig's comptime (compile-time) features offer powerful metaprogramming capabilities. This allows for expressive yet efficient code, as you can generate specialized routines at compile-time, reducing the need for runtime polymorphism. + +### 6. Minimal Dependencies + +Zig aims to reduce dependencies to a minimum, which could simplify the deployment and distribution of Cairo VM. This is particularly advantageous for systems that require high-reliability or have limited resources. + +### 7. Community and Ecosystem + +Although younger than Rust and Go, Zig's community is enthusiastic and rapidly growing. Adopting Zig at this stage means you can be a significant contributor to its ecosystem. + +By choosing Zig for the third implementation of Cairo VM, we aim to leverage these features to build a high-performance, reliable, and maintainable virtual machine. + + ## 📄 License This project is licensed under the MIT license. See [LICENSE](LICENSE) for more information. -Happy coding! 🎉 \ No newline at end of file +Happy coding! 🎉 +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + +
Abdel @ StarkWare
Abdel @ StarkWare

💻
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! \ No newline at end of file