Re: [Cppcms-users] Current Develoment
Brought to you by:
artyom-beilis
From: Artyom B. <art...@ya...> - 2015-03-29 09:39:52
|
Before CppCSM 1.0.0 the older version had no this policy and it was problem. If a library releases a security fix with ABI compatibility - you just deploy the libcppcms.so - that's it. Only application restart is required. Consider you have a production site, if you need to release a fix you don't need to redeploy the application. I personally had several cases were I could easily upgrade cppcms and deploy it without caring about multiple applications recompilation. If you have a big and busy site like this [1] it is critical. Another stuff was using boost or some other libraries in API for example - it was horrible-horrible experience: (a) boost breaks its own API & ABI almost every release (!) - your code becomes if-def spaghetti especially when customer needs a specific boost version or runs on older platform (b) boost's ABI can be broken with a simple define, the deployment is major problem especially when some customer's code uses boost as well. There are NUMEROUS cases when applications crashed because different parts were compiled with different versions of Boost - and it was very hard to debug such things(c) I need to support many platforms including Windows, so every library should have wide support of every platform/compiler(d) Today with mix of C++ 2003 and C++ 2011 it is even more critical to keep the ABI stable and independent. [1] http://blog.cppcms.com/post/114 Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ From: Paolo Bolzoni <pao...@gm...> To: Artyom Beilis <art...@ya...>; cpp...@li... Sent: Friday, March 27, 2015 4:56 AM Subject: Re: [Cppcms-users] Current Develoment I find praiseworthy your dedication to keep cmscpp ABI compatible and the strict policy for external deps, but it is really necessary? Is the userbase so large that doing differently would really break things like in KDE? It absolutely not meant as a critic, I am asking because I don't understand. On Wed, Mar 25, 2015 at 6:36 PM, Artyom Beilis <art...@ya...> wrote: > Regarding the internal HTTP server. > > It requires following features: > > - File serving - simple stuff - changes in internal_file_server > (a) make text only sanitizing of URLs (for next step) > (b) make symlinks resolution optional, improve the performance > (c) make it asynchronous (optional) > - Support of HTTPS - complex - mostly at booster::aio level - implement > asynchronous/synchronous ssl "socket" and integrate it into http_api.cpp > - Support HTTP/1.1 - very complex - at http_api.cpp level > (a) keep-alive > (b) chunked transfer encoding > (c) pipelining > (d) more... > - Support of Web Sockets - very complex - probably requires first to > implement HTTP/1.1 and design WebSocket API at cppcms::context() level. > > > Now... you can't really use the libraries you suggested because > > (a) internal HTTP server works withing CppCMS internal event loop and any > library should be integrated INTO the event loop rather than CppCMS would > use external HTTP library > (b) CppCMS has very strict policy on introduction of new dependencies: > http://cppcms.com/wikipp/en/page/cppcms_1x_coding_standards#Libraries > > > So basically you need to implement the HTTP stuff yourself. > > The file serving is handled by this code: > http://sourceforge.net/p/cppcms/code/HEAD/tree/framework/trunk/src/internal_file_server.cpp > > It can be significantly improved... > > Regarding SVN... so far there were too few people who wanted to contribute. > The conversion isn't easy as many automatic tools work with svn (release > stuff, nightly builds etc) > > Also you can always use git-svn. > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.com/ > CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ > > ________________________________ > From: Marius Cirsta <mf...@gm...> > To: cpp...@li... > Sent: Tuesday, March 24, 2015 10:50 PM > > Subject: Re: [Cppcms-users] Current Develoment > > I ( and maybe others ) would like to help but I guess the entry point > is a bit too high, I certainly don't know enough about the design of > CppCMS to be able to implement a significant feature. However if > properly broken down into smaller bits I believe it's doable. > Of course this would mean different coding styles and you'd have to > review the work, make suggestions. > > Of all these new features 1. multiple event loops - should give > important performance boost and solve bottleneck there sound the most > important to me. > > While this : > 5. improve internal HTTP server so it can be used more freely and be > more efficient in file serving. > > sounds like something I'd like to work on and it would probably be > easier ( hopefully ) than the rest of the core CppCMS work. Maybe > using this Proxygen, a collection of C++ HTTP libraries, including an > easy-to-use HTTP server would be an idea ? > > I know you really like SVN but if CppCMS ever goes the multiple > developers route then something like GitHub is probably better. > > > > > > On Tue, Mar 24, 2015 at 11:48 AM, Artyom Beilis <art...@ya...> wrote: >> Ok... >> >> The reason the patch isn't in because it is API change that minor release >> should not include. >> >> But in general the version is quite stable. >> >> I have following important things I want to add to 1.2 >> >> 1. multiple event loops - should give important performance boost and >> solve >> bottleneck there >> 2. redesign mounting/generation application concept. >> 3. support of event loop access before the post data is uploaded (for >> stuff >> like upload meters) >> 4. Plugin - we have some significant improvements as it is possible to >> generate headers for templates but some more stuff is required to be fully >> useful >> 5. improve internal HTTP server so it can be used more freely and be more >> efficient in file serving. >> >> The rest of the stuff there >> >> http://cppcms.com/wikipp/en/page/cppcms_1x_tasks#CppCMS.1.1.0.-.Next.Release >> can really wait. >> >> Now I can postpone some of the stuff to 1.4 but that means that these >> features would be postponed even more. >> >> Also multiple event loops is important but I can postpone it to 1.4. >> 2-3 are very important changes and very connected I really want them in >> 1.2 >> but they also can wait >> I think that 4 and 5 are smaller and very important to get them to 1.2... >> also they aren't "big" features. But requested ones. >> >> To implement 2 and 3 and to some degree 1 I need to redesign entire >> mounting/application factory concept. >> >> (a) factory for per-event-loop fir async-apps >> (b) mounting option for pre-POST processing application handling. >> (c) change application "generation" point from event loop to the thread >> pool >> such that there would be no more applications than threads (it is current >> design issue that should be fixed) >> >> So.... >> >> Community: YOUR OPINION NEEDED... >> >> Artyom Beilis >> -------------- >> CppCMS - C++ Web Framework: http://cppcms.com/ >> CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >> >> ________________________________ >> From: Christian Gmeiner <chr...@gm...> >> To: Artyom Beilis <art...@ya...>; >> cpp...@li... >> Sent: Tuesday, March 24, 2015 10:10 AM >> Subject: Re: [Cppcms-users] Current Develoment >> >> Hi >> >> 2015-03-18 9:11 GMT+01:00 Artyom Beilis <art...@ya...>: >>> I'd say like it is said in Debian... when it is ready. >>> >> >> That is really no problem for me. I like this attitude to finish stuff >> before they hit >> productive use. >> >>> Other than that CppCMS is fully supported and active also you don't see >>> too >>> much commits. >>> >> >> Some years ago - yes sounds brutal - I added a patch which got added >> to cppcms (trunk only). >> So I got you to merge a patch, which is great, but there is no >> released version of cppcms with >> this patch in, which is bad. >> >> http://sourceforge.net/p/cppcms/patches/13/ >> >> Thats what makes me feel bad about cppcms. I think it would a good >> thing to release more often >> with less features. Maybe also fixing compiler warnings would be cool. >> I can look into it, but >> it is not as easy as with other FOSS projects to get patches accepted >> and into an released version. >> >> >> >> >>> Artyom Beilis >>> -------------- >>> CppCMS - C++ Web Framework: http://cppcms.com/ >>> CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >>> >>> ________________________________ >>> From: Christian Gmeiner <chr...@gm...> >>> To: cpp...@li... >>> Sent: Tuesday, March 17, 2015 6:40 PM >>> Subject: [Cppcms-users] Current Develoment >>> >>> Hi all. >>> >>> cppcms is currently quite silent regarding its development and I am not >>> sure >>> if >>> that is good. Does anybody knows about plans for the next release? >>> >> >> greets >> -- >> Christian Gmeiner, MSc >> >> https://soundcloud.com/christian-gmeiner >> >> >> ------------------------------------------------------------------------------ >> Dive into the World of Parallel Programming The Go Parallel Website, >> sponsored >> by Intel and developed in partnership with Slashdot Media, is your hub for >> all >> things parallel software development, from weekly thought leadership blogs >> to >> news, videos, case studies, tutorials and more. Take a look and join the >> conversation now. http://goparallel.sourceforge.net/ >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users >> >> >> >> >> ------------------------------------------------------------------------------ >> Dive into the World of Parallel Programming The Go Parallel Website, >> sponsored >> by Intel and developed in partnership with Slashdot Media, is your hub for >> all >> things parallel software development, from weekly thought leadership blogs >> to >> news, videos, case studies, tutorials and more. Take a look and join the >> conversation now. http://goparallel.sourceforge.net/ >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > >> > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Cppcms-users mailing list Cpp...@li... https://lists.sourceforge.net/lists/listinfo/cppcms-users |