![]() |
Scale Stack |
Project on Launchpad Developer Docs Getting Started Mailing List |
|
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 BSD license, so it may be used in a variety of environments. It is written in C++, follows strict coding guidelines to keep the code maintainable, and is intended to be run on POSIX compliant systems. 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 is similar to some parts of the Twisted framework for Python, but 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 in an interpreter. What about other network service engines like nginx? Scale Stack is more modular 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, who has been writing high performance server and database software for most of his career. It will hopefully grow into a community-driven open source project as more developers discover and begin to use it. Contributions will be taken under the BSD license from anyone, no transfer of copyright is required. Interested in helping out? Get in touch! There is also a #scalestack IRC channel on irc.freenode.net. | ||
|
Copyright (C) 2010 Eric Day - eday@oddments.org
Logo created by Chromakode All content licensed under the Creative Commons Attribution 3.0 License. | ||