Awesome
<div align="center"> <h1>Alexandria</h1> <img src="docs/images/logo.png" height="400" width="400"> <br /> <a href="https://github.com/keep-starknet-strange/alexandria/issues/new?assignees=&labels=bug&template=01_BUG_REPORT.md&title=bug%3A+">Report a Bug</a> - <a href="https://github.com/keep-starknet-strange/alexandria/issues/new?assignees=&labels=enhancement&template=02_FEATURE_REQUEST.md&title=feat%3A+">Request a Feature</a> - <a href="https://github.com/keep-starknet-strange/alexandria/discussions">Ask a Question</a> </div> <div align="center"> <br /> </div> <details> <summary>Table of Contents</summary>- Report a Bug
- Request a Feature
- About
- Features
- Getting Started
- Usage
- Roadmap
- Support
- Project assistance
- Contributing
- Authors & contributors
- Security
- License
- Acknowledgements
- 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
Features
This repository is composed of multiple crates:
Getting Started
Prerequisites
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
:
[dependencies]
alexandria_math = { git = "https://github.com/keep-starknet-strange/alexandria.git" }
then add the following line in your .cairo
file
use alexandria_math::sha512::sha512;
Usage
Build
scarb build
Test
scarb test
Running a specific subset of tests
scarb test -f math
Format
scarb fmt
Roadmap
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the 👍 reaction)
- Top Bugs (Add your votes using the 👍 reaction)
- Newest Bugs
Support
Reach out to the maintainer at one of the following places:
- GitHub Discussions
- Contact options listed on this GitHub profile
Project assistance
If you want to say thank you or/and support active development of Alexandria:
- Add a GitHub Star to the project.
- Tweet about the Alexandria.
- Write interesting articles about the project on Dev.to, Medium 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, and thank you for being involved!
Authors & contributors
For a full list of all authors and contributors, see the contributors page.
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.
License
This project is licensed under the MIT license.
See LICENSE for more information.
Acknowledgements
- TheAlgorithms/Rust for inspiration regarding the implementation of algorithms.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/abdelhamidbakhta"><img src="https://avatars.githubusercontent.com/u/45264458?v=4?s=100" width="100px;" alt="Abdel @ StarkWare "/><br /><sub><b>Abdel @ StarkWare </b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=abdelhamidbakhta" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/sdgalvan"><img src="https://avatars.githubusercontent.com/u/58611754?v=4?s=100" width="100px;" alt="Santiago Galván (Dub)"/><br /><sub><b>Santiago Galván (Dub)</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=sdgalvan" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/dpinones"><img src="https://avatars.githubusercontent.com/u/30808181?v=4?s=100" width="100px;" alt="Damián Piñones"/><br /><sub><b>Damián Piñones</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=dpinones" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/greged93"><img src="https://avatars.githubusercontent.com/u/82421016?v=4?s=100" width="100px;" alt="greged93"/><br /><sub><b>greged93</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=greged93" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/mkaput"><img src="https://avatars.githubusercontent.com/u/3450050?v=4?s=100" width="100px;" alt="Marek Kaput"/><br /><sub><b>Marek Kaput</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=mkaput" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/amanusk"><img src="https://avatars.githubusercontent.com/u/7280933?v=4?s=100" width="100px;" alt="amanusk"/><br /><sub><b>amanusk</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=amanusk" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/msaug"><img src="https://avatars.githubusercontent.com/u/60658558?v=4?s=100" width="100px;" alt="Mathieu"/><br /><sub><b>Mathieu</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=msaug" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/EvolveArt"><img src="https://avatars.githubusercontent.com/u/12902455?v=4?s=100" width="100px;" alt="0xevolve"/><br /><sub><b>0xevolve</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=EvolveArt" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/JordyRo1"><img src="https://avatars.githubusercontent.com/u/87231934?v=4?s=100" width="100px;" alt="Jordy Romuald"/><br /><sub><b>Jordy Romuald</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=JordyRo1" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/gaetbout"><img src="https://avatars.githubusercontent.com/u/16206518?v=4?s=100" width="100px;" alt="gaetbout"/><br /><sub><b>gaetbout</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=gaetbout" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/LucasLvy"><img src="https://avatars.githubusercontent.com/u/70894690?v=4?s=100" width="100px;" alt="Lucas @ StarkWare"/><br /><sub><b>Lucas @ StarkWare</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=LucasLvy" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://milancermak.com/"><img src="https://avatars.githubusercontent.com/u/184055?v=4?s=100" width="100px;" alt="Milan Cermak"/><br /><sub><b>Milan Cermak</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=milancermak" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/neotheprogramist"><img src="https://avatars.githubusercontent.com/u/128649481?v=4?s=100" width="100px;" alt="Paweł"/><br /><sub><b>Paweł</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=neotheprogramist" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tensojka"><img src="https://avatars.githubusercontent.com/u/8470346?v=4?s=100" width="100px;" alt="Ondřej Sojka"/><br /><sub><b>Ondřej Sojka</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=tensojka" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/edisontim"><img src="https://avatars.githubusercontent.com/u/76473430?v=4?s=100" width="100px;" alt="tedison"/><br /><sub><b>tedison</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=edisontim" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/raphaelDkhn"><img src="https://avatars.githubusercontent.com/u/113879115?v=4?s=100" width="100px;" alt="raphaelDkhn"/><br /><sub><b>raphaelDkhn</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=raphaelDkhn" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://rules.art/"><img src="https://avatars.githubusercontent.com/u/19663399?v=4?s=100" width="100px;" alt="Charles Lanier"/><br /><sub><b>Charles Lanier</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=0xChqrles" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/omahs"><img src="https://avatars.githubusercontent.com/u/73983677?v=4?s=100" width="100px;" alt="omahs"/><br /><sub><b>omahs</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=omahs" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/maciejka"><img src="https://avatars.githubusercontent.com/u/190855?v=4?s=100" width="100px;" alt="Maciej Kamiński"/><br /><sub><b>Maciej Kamiński</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=maciejka" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Bal7hazar"><img src="https://avatars.githubusercontent.com/u/97087040?v=4?s=100" width="100px;" alt="Bal7hazar @ Carbonable"/><br /><sub><b>Bal7hazar @ Carbonable</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=Bal7hazar" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/0xKahi"><img src="https://avatars.githubusercontent.com/u/97916104?v=4?s=100" width="100px;" alt="kahi"/><br /><sub><b>kahi</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=0xKahi" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/0xTitan"><img src="https://avatars.githubusercontent.com/u/104304962?v=4?s=100" width="100px;" alt="0xTitan"/><br /><sub><b>0xTitan</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=0xTitan" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ermvrs"><img src="https://avatars.githubusercontent.com/u/3417324?v=4?s=100" width="100px;" alt="Erim"/><br /><sub><b>Erim</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=ermvrs" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/maciektr"><img src="https://avatars.githubusercontent.com/u/18600023?v=4?s=100" width="100px;" alt="maciektr"/><br /><sub><b>maciektr</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=maciektr" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/lambda-0x"><img src="https://avatars.githubusercontent.com/u/87354252?v=4?s=100" width="100px;" alt="lambda-0x"/><br /><sub><b>lambda-0x</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=lambda-0x" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Eikix"><img src="https://avatars.githubusercontent.com/u/66871571?v=4?s=100" width="100px;" alt="Elias Tazartes"/><br /><sub><b>Elias Tazartes</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=Eikix" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/akhercha"><img src="https://avatars.githubusercontent.com/u/22559023?v=4?s=100" width="100px;" alt="akhercha"/><br /><sub><b>akhercha</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=akhercha" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/azurwastaken"><img src="https://avatars.githubusercontent.com/u/30268138?v=4" width="100px;" alt="azurwastaken"/><br /><sub><b>azurwastaken</b></sub></a><br /><a href="https://github.com/keep-starknet-strange/alexandria/commits?author=azurwastaken" title="Code">💻</a></td> </tr> </tbody> <tfoot> <tr> <td align="center" size="13px" colspan="7"> <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg"> <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a> </img> </td> </tr> </tfoot> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->This project follows the all-contributors specification. Contributions of any kind welcome!