我想创建一个运行RAM很少的Web应用程序,我认为C ++可以帮助我实现这一目标。
现在,很多人都说C ++不适合网络开发,因为:
但是我确信C ++社区已经找到了减轻所有这些(可能不是编译时间)的方法,但是因为我不是常规的所以我很难对我在Google中找到的东西进行评估。
所以我要求一些指导。如果你分享哪些有用,哪些工具/库是最新的和活着的,我将不胜感激。什么策略可以帮助C ++中的Web开发? FastCGI或嵌入式服务器(Asio / POCO / Pion /等)?您如何解决安全问题?
非常感谢您的帮助
答案 0 :(得分:13)
你看过http://www.tntnet.org/了吗?他们创建了一个......让我从他们的网站剪切和粘贴:
Tntnet是一个模块化的多线程, 高性能的webapplicationserver 对于C ++。创建Web应用程序 Tntnet有一个名为的模板语言 ecpp类似于php,jsp或mason, 你可以在里面嵌入c ++代码 html-page生成活动内容。 ecpp文件已预编译为 c ++ - 称为组件和类的类 编译并链接到共享 图书馆。这个过程完成于 编译时。
我已经使用过它,它的开销很小,而且动态页面生成速度非常快。使PHP,Ruby等蜗牛比较,因为使用tntnet运行编译的C / C ++代码。
答案 1 :(得分:9)
有Wt Project。它使用类似于Qt的信号/插槽的范例。
答案 2 :(得分:7)
尝试使用C ++构建Web应用程序时,没有错误。这真的很有趣。你需要的是:
答案 3 :(得分:1)
给我们一些关于你要做什么的更多提示。
你可以用C ++编写一个很好的老式cgi程序,并用FastCGI运行它。我们过去常常这样做。
您也可以编写一个嵌入轻量级HTTP服务器的C ++程序。
它们都比使用perl或ruby之类的东西大得多。
那为什么是C ++?
好的,明白了。关于FastCGI的主要问题是它避免了fork-exec来运行你的CGI程序,但它有点不同的API。这很好,但你仍然有处理HTTP内容的问题。
但是,有一些非常轻量级的HTTP服务器,例如Cherokee和Lighttpd。在类似的情况下(为设备构建Web界面)我已经看到人们使用其中之一并在其下运行他们的C / C ++程序作为CGI。特别是Lighttpd似乎专注于快速高效地制作类似CGI的东西。
另一个更新。我刚才cgicc指出了我:http://www.gnu.org/software/cgicc/
这可能会解决一些问题。
答案 4 :(得分:1)
ATL Server是一个C ++类库,允许开发人员构建基于Internet的应用程序。
答案 5 :(得分:1)
ATL Server。 It's open source too!当然,总有ISAPI。啊,过去的坏日子。 :)
答案 6 :(得分:1)
在other question中,您提到您的嵌入式系统是openwrt。由于此路由器固件已经附带嵌入式Web服务器(对于它的管理UI),为什么不将它用于您的应用程序呢?
答案 7 :(得分:1)
我们的网络应用程序后端采用C ++通过CGI,我们使用Clearsilver模板以及随附的HDF。
答案 8 :(得分:0)
您可以尝试 Cutelyst 使用Qt构建的C ++ 11,其中TechEmpower Benchmarks位置最佳位置之一。
即使它需要Qt 5.6+,完整的CMS(CMlyst)使用大约6MB的RAM,同时在单个核心上每秒提供大约3000个请求。
对于你的字符串操作问题,QString只是一个了不起的类。