jacobjohansen / euclid Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hal9000xp/euclid
An event-driven framework
License: Other
This project forked from hal9000xp/euclid
An event-driven framework
License: Other
E(u)clid Version: Apr 2014 Author: Eldar Gaynetdinov License: ISC DESCRIPTION: ------------ E(u)clid (further in text called Euclid) is the minimalist style framework which provides the following features: * event-driven engine based on epoll (SSL connections also supported) * client and limited server behaviour * buffering network IO * global and connection based timers * modularity * logging * limited support of HTTP 1.1 (permanent connections also supported) * fixed point arithmetic * YAML based config parser * linked lists, hash tables etc PHILOSOPHY: ----------- Keep it thin. Don't use a lot of libraries except glibc. At the moment there are only three exeptions (OpenSSL, zlib, crc32). Provide enough functionality and scalability but stay in the minimalist style. WHY IT EXISTS? ------------- This is the public part of my personal project which I will use for algorithmic trading at NYSE, NASDAQ, CME etc. I don't like huge libraries and frameworks. That's why I decided to write this lightweight framework. I share it because somebody may find this framework interesting and useful. The name Euclid is inspired by Darren Aronofsky's film Pi. After I wrote event-driven engine I noticed similarity between (Eu)clid and (Ev)ent. That's why I call it E(u)clid. BUILD: ------ You need a Linux environment with installed OpenSSL and zlib dev packages. 1) To build debug version: $ make 2) To build release version: $ make release 3) To build debug version which is intended for proxy module: $ make test_many_conns NOTE: http proxy module is intended for testing this framework. But I still didn't implement support for many connections. That means it's needed O(n) to traverse all the connections. That's why in normal mode, I don't support many connections. 4) To cleanup: $ make clean GETTING STARTED --------------- 1) $ make test_many_conns 2) point out your browser to: localhost:1111 NOTE: http proxy supports SSL connections and HTTP method CONNECT. So it's possible to use this proxy for another protocols (try to use Pidgin IM through this proxy). 3) $ ./euclid module:proxy no_debug_log 4) Enjoy! To move logging to file. Invoke this before running ./euclid $ ./core/make_tmpfs_logging_dir.sh It creates a temporary directory in tmpfs. It's useful with debug logging. SECURITY WARNING: ----------------- Please, generate and add your own private key and cert to core/core.cfg by adding: ####### net_cert_file: [path to cert file].crt net_key_file: [path to key file].key ####### Otherwise, a throwaway key is used for tests. See core/core.cfg : ####### net_cert_test_file: core/server_test.crt net_key_test_file: core/server_test.key ####### Also, you will get a warning message when Euclid started.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.