Simuzilla is a comprehensive near-simulation framework designed to facilitate the development and testing of network protocols and distributed systems. The project includes various internal libraries and modules to support different aspects of near-simulation and communication.
The simuzilla-backend is an internal library within the Simuzilla project. It provides core functionalities for managing network simulations, including message dispatching, frame creation, and network device handling.
- Message Dispatching: Efficiently handles the dispatching of messages to target nodes.
- Frame Creation: Supports the creation and serialization of network frames.
- Network Device Handling: Manages network devices for sending and receiving packets.
To get started with the Simuzilla project, clone the repository and follow the setup instructions provided in the documentation.
We welcome contributions to the Simuzilla project. Please read our contributing guidelines and code of conduct before making any contributions.
All contributions are more than welcome! Nonetheless, the contributions must follow a certain guideline to be accepted and to be useful during its time. First of all, and please, contact Rui Eduardo Lopes to start contributing so that he or other team member can advise you on some caveats and have the opportunity to introduce you to our development tools and pipeline.
What can we promise you as a contributor? Well, a lot of things:
- An opportunity for you to propose new solutions to each and every part of the Simuzilla project.
- The opportunity for you to create your own contributions, not to be an assistant to anyone working in this project: as soon as you contribute you are an author too.
- The opportunity to join a network of professionals in discussions about systems, network, and mostly software engineering.
To contribute to this project might be the perfect environment for you to explore new solutions, new architectures and so on... What are we expecting of you, in the meantime? Well it is great that you have the following skills:
- Linux knowledge: at the least have an idea of what is the kernel and user space in Linux, as well as some UNIX-like features and commands;
- Software engineering skills: knowing to work in the project and to collaborate in software engineering is the key to success here;
- Good discussion and demonstration skills: we want people that are both discussing theoretical stuff, as showing them working as soon as possible;
- Be nice and equal to others: when you contribute know that you are not better than others, as well as not even the project leader is better than anyone else: we are all equal in this project, there is no discussion over it, reason why we need you to, as a group, be better at what we want to do.
If you feel scared or anxious with the list above and still want to join us, please, contact us! Besides the last point there, no other is a hard requirement here, and we are friendly enough to welcome you and assist you on your contribution: the only catch is that you can do the same with things you know too, with us!
Simuzilla is distributed under the GNU GPLv2. See the file COPYING for the full text of the license. When in doubt the full text is the legally binding part. These notes are just to make it easier for people that are not familiar with the GPLv2.
There are no restrictions on its use. There are restrictions on its distribution in source or binary form.
Most parts of Simuzilla are covered by a "GPL version 2 or later" license. Some files are covered by different licenses that are compatible with the GPLv2.
As a notable exception, some utilities distributed with the Simuzilla source are covered by other licenses that are not themselves directly compatible with the GPLv2. This is OK, as only the tools themselves are licensed this way, the output of the tools is not considered a derived work, and so can be safely licensed for Simuzilla's use.
Parts of Simuzilla can be built and distributed as libraries. These parts are still covered by the GPL, and NOT by the Lesser General Public License or any other license.
If you integrate all or part of Simuzilla into your own application and you opt to publish or release it then the combined work must be released under the terms of the GPLv2.
This project follows the standardized project structure as Go's. For more information, please consult this link.
cmd, main applications for this project;docs, documentation and other pieces of information relevant to this project;internal, specific internal libraries for this project;tests, tests that serve as support for the development of Simuzilla.
There is no warranty, expressed or implied, associated with this project nor its artifacts. Use at your own risk.