![]() |
Scale Stack |
Getting Started Developer Docs Code Coverage Project on GitHub |
|
Scale Stack aims to integrate common network services used for building scalable architectures into a single project. The goal is to increase the efficiency by sharing both code and resources between these services. It also aims to be both a service stack and a development framework. For example, protocol parsing modules are written generically so they can be used for any number of client, server, or proxy applications. New services can easily be built be connecting together previous modules in new ways. If you are writing network service software in C/C++, Scale Stack may provide just what you need for your “Kernel” and core modules, then your custom service modules can be built from there. The design is extremely modular and uses dependency tracking between modules for easy bootstrapping of applications. Non-blocking event processing is at the core of the design, as well as emphasis on security, efficiency, and multi-tenancy. All code is open source under the Apache 2.0 license, so it may be used in a variety of environments. It is written in C++ and follows strict coding guidelines to keep the code maintainable. C++ was chosen for the runtime efficiency over many of the dynamic and byte-code compiled languages. C++ was chosen over C to allow for safe and clean class abstractions for module writers. While this interface could be implemented in C, C++ provides more protection and compile-time safety checks. Not all features of C++ are used due to design decisions and portability issues, please see the README file in the source for further information. Why not build on existing software?Scale Stack could be compared in some ways to the Twisted framework for Python, but written in C++. Why not use Twisted? Multi-threaded performance is poor in Python due to the global interpreter lock and the obvious inefficiency of running a higher-level language in an interpreter. What about other network service engines like nginx? Scale Stack is more modular, not just HTTP focused, and will also take into account multiple entities that can represent accounts, users, or other tenants within the system. Who works on it?This project was started by Eric Day, but the goal is to create a community-driven open source project. The only way this project will succeed is if users and developers voice their ideas and problems so we can make sure the project meets their needs. There is still quite a bit of work to get done, so any input, code, or design ideas would be very valuable. Contributions will be taken under the Apache 2.0 license from anyone, no transfer of copyright is required. Interested in helping out? Get in touch! There is a #scalestack IRC channel on irc.freenode.net. | ||
|
All content licensed under the Creative Commons Attribution 3.0 License.
Hosted by Rackspace Cloud - Logo created by Chromakode | ||