Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/keep-starknet-strange/alexandria
Community maintained Cairo libraries and set of well maintained, optimised and secure components.
https://github.com/keep-starknet-strange/alexandria
cairo-lang libraries zkp
Last synced: 22 days ago
JSON representation
Community maintained Cairo libraries and set of well maintained, optimised and secure components.
- Host: GitHub
- URL: https://github.com/keep-starknet-strange/alexandria
- Owner: keep-starknet-strange
- License: mit
- Created: 2022-11-25T08:26:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-29T06:53:18.000Z (5 months ago)
- Last Synced: 2024-07-30T23:21:11.402Z (5 months ago)
- Topics: cairo-lang, libraries, zkp
- Language: Cairo
- Homepage:
- Size: 4.49 MB
- Stars: 224
- Watchers: 3
- Forks: 98
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: docs/SECURITY.md
Awesome Lists containing this project
- awesome-cairo - `alexandria`
- awesome-starknet - Alexandria - Collection of useful algorithms and data structures implemented in Cairo. (Additional developer resources)
README
[![GitHub Workflow Status](https://github.com/keep-starknet-strange/alexandria/actions/workflows/test.yml/badge.svg)](https://github.com/keep-starknet-strange/alexandria/actions/workflows/test.yml)
[![Project license](https://img.shields.io/github/license/keep-starknet-strange/alexandria.svg?style=flat-square)](LICENSE)
[![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/keep-starknet-strange/alexandria/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)[![Exploration_Team](https://img.shields.io/badge/Exploration_Team-29296E.svg?&style=for-the-badge&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODEgMTgxIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3Ni43Niw4OC4xOGwtMzYtMzcuNDNjLTEuMzMtMS40OC0zLjQxLTIuMDQtNS4zMS0xLjQybC0xMC42MiwyLjk4LTEyLjk1LDMuNjNoLjc4YzUuMTQtNC41Nyw5LjktOS41NSwxNC4yNS0xNC44OSwxLjY4LTEuNjgsMS44MS0yLjcyLDAtNC4yN0w5Mi40NSwuNzZxLTEuOTQtMS4wNC00LjAxLC4xM2MtMTIuMDQsMTIuNDMtMjMuODMsMjQuNzQtMzYsMzcuNjktMS4yLDEuNDUtMS41LDMuNDQtLjc4LDUuMThsNC4yNywxNi41OGMwLDIuNzIsMS40Miw1LjU3LDIuMDcsOC4yOS00LjczLTUuNjEtOS43NC0xMC45Ny0xNS4wMi0xNi4wNi0xLjY4LTEuODEtMi41OS0xLjgxLTQuNCwwTDQuMzksODguMDVjLTEuNjgsMi4zMy0xLjgxLDIuMzMsMCw0LjUzbDM1Ljg3LDM3LjNjMS4zNiwxLjUzLDMuNSwyLjEsNS40NCwxLjQybDExLjQtMy4xMSwxMi45NS0zLjYzdi45MWMtNS4yOSw0LjE3LTEwLjIyLDguNzYtMTQuNzYsMTMuNzNxLTMuNjMsMi45OC0uNzgsNS4zMWwzMy40MSwzNC44NGMyLjIsMi4yLDIuOTgsMi4yLDUuMTgsMGwzNS40OC0zNy4xN2MxLjU5LTEuMzgsMi4xNi0zLjYsMS40Mi01LjU3LTEuNjgtNi4wOS0zLjI0LTEyLjMtNC43OS0xOC4zOS0uNzQtMi4yNy0xLjIyLTQuNjItMS40Mi02Ljk5LDQuMyw1LjkzLDkuMDcsMTEuNTIsMTQuMjUsMTYuNzEsMS42OCwxLjY4LDIuNzIsMS42OCw0LjQsMGwzNC4zMi0zNS43NHExLjU1LTEuODEsMC00LjAxWm0tNzIuMjYsMTUuMTVjLTMuMTEtLjc4LTYuMDktMS41NS05LjE5LTIuNTktMS43OC0uMzQtMy42MSwuMy00Ljc5LDEuNjhsLTEyLjk1LDEzLjg2Yy0uNzYsLjg1LTEuNDUsMS43Ni0yLjA3LDIuNzJoLS42NWMxLjMtNS4zMSwyLjcyLTEwLjYyLDQuMDEtMTUuOGwxLjY4LTYuNzNjLjg0LTIuMTgsLjE1LTQuNjUtMS42OC02LjA5bC0xMi45NS0xNC4xMmMtLjY0LS40NS0xLjE0LTEuMDgtMS40Mi0xLjgxbDE5LjA0LDUuMTgsMi41OSwuNzhjMi4wNCwuNzYsNC4zMywuMTQsNS43LTEuNTVsMTIuOTUtMTQuMzhzLjc4LTEuMDQsMS42OC0xLjE3Yy0xLjgxLDYuNi0yLjk4LDE0LjEyLTUuNDQsMjAuNDYtMS4wOCwyLjk2LS4wOCw2LjI4LDIuNDYsOC4xNiw0LjI3LDQuMTQsOC4yOSw4LjU1LDEyLjk1LDEyLjk1LDAsMCwxLjMsLjkxLDEuNDIsMi4wN2wtMTMuMzQtMy42M1oiLz48L3N2Zz4=)](https://github.com/keep-starknet-strange)
Table of Contents
- [Report a Bug](#report-a-bug)
- [Request a Feature](#request-a-feature)
- [About](#about)
- [Features](#features)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Build](#build)
- [Run](#run)
- [Test](#test)
- [Format](#format)
- [Roadmap](#roadmap)
- [Support](#support)
- [Project assistance](#project-assistance)
- [Contributing](#contributing)
- [Authors \& contributors](#authors--contributors)
- [Security](#security)
- [License](#license)
- [Acknowledgements](#acknowledgements)
- [Contributors ✨](#contributors-)---
## About
Alexandria is a community maintained standard library for Cairo 1.0.
It is a collection of useful algorithms and data structures implemented in Cairo.
Current version can be found in the [toml file](./Scarb.toml)## Features
This repository is composed of multiple crates:
- [ASCII](./packages/ascii/README.md)
- [Data Structures](./packages/data_structures/README.md)
- [Encoding](./packages/encoding/README.md)
- [Linalg](./packages/linalg/README.md)
- [Math](./packages/math/README.md)
- [Numeric](./packages/numeric/README.md)
- [Searching](./packages/searching/README.md)
- [Sorting](./packages/sorting/README.md)
- [Storage](./packages/storage/README.md)
- [Bytes](./packages/bytes/README.md)## Getting Started
### Prerequisites
- [Cairo](https://github.com/starkware-libs/cairo)
- [Scarb](https://docs.swmansion.com/scarb)
- [Rust](https://www.rust-lang.org/tools/install)### Installation
Alexandria is a collection of utility Cairo packages, which have to be added as dependencies separately.
For example, the `alexandria_math` package can be installed by adding the following line to your `Scarb.toml`:```toml
[dependencies]
alexandria_math = { git = "https://github.com/keep-starknet-strange/alexandria.git" }
```then add the following line in your `.cairo` file
```rust
use alexandria_math::sha512::sha512;
```## Usage
### Build
```bash
scarb build
```### Test
```bash
scarb test
```
Running a specific subset of tests
```bash
scarb test -f math
```### Format
```bash
scarb fmt
```## Roadmap
See the [open issues](https://github.com/keep-starknet-strange/alexandria/issues) for a list of proposed features (and known issues).
- [Top Feature Requests](https://github.com/keep-starknet-strange/alexandria/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
- [Top Bugs](https://github.com/keep-starknet-strange/alexandria/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
- [Newest Bugs](https://github.com/keep-starknet-strange/alexandria/issues?q=is%3Aopen+is%3Aissue+label%3Abug)## Support
Reach out to the maintainer at one of the following places:
- [GitHub Discussions](https://github.com/keep-starknet-strange/alexandria/discussions)
- Contact options listed on [this GitHub profile](https://github.com/starknet-exploration)## Project assistance
If you want to say **thank you** or/and support active development of Alexandria:
- Add a [GitHub Star](https://github.com/keep-starknet-strange/alexandria) to the project.
- Tweet about the Alexandria.
- Write interesting articles about the project on [Dev.to](https://dev.to/), [Medium](https://medium.com/) or your personal blog.Together, we can make Alexandria **better**!
## Contributing
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**.
Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved!
## Authors & contributors
For a full list of all authors and contributors, see [the contributors page](https://github.com/keep-starknet-strange/alexandria/contributors).
## Security
Alexandria follows good practices of security, but 100% security cannot be assured.
Alexandria is provided **"as is"** without any **warranty**. Use at your own risk._For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._
## License
This project is licensed under the **MIT license**.
See [LICENSE](LICENSE) for more information.
## Acknowledgements
- [TheAlgorithms/Rust](https://github.com/TheAlgorithms/Rust) for inspiration regarding the implementation of algorithms.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Abdel @ StarkWare
💻
Santiago Galván (Dub)
💻
Damián Piñones
💻
greged93
💻
Marek Kaput
💻
amanusk
💻
Mathieu
💻
0xevolve
💻
Jordy Romuald
💻
gaetbout
💻
Lucas @ StarkWare
💻
Milan Cermak
💻
Paweł
💻
Ondřej Sojka
💻
tedison
💻
raphaelDkhn
💻
Charles Lanier
💻
omahs
💻
Maciej Kamiński
💻
Bal7hazar @ Carbonable
💻
kahi
💻
0xTitan
💻
Erim
💻
maciektr
💻
lambda-0x
💻
Elias Tazartes
💻
akhercha
💻
azurwastaken
💻
Add your contributions
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
[scarb]: https://github.com/software-mansion/scarb