什么适用于C ++中的web dev

时间:2009-04-22 22:42:23

标签: c++

我想创建一个运行RAM很少的Web应用程序,我认为C ++可以帮助我实现这一目标。

现在,很多人都说C ++不适合网络开发,因为:

  • 没有简单的字符串操作
  • 是一种不安全的语言(溢出等)
  • 长期更改/构建/测试周期

但是我确信C ++社区已经找到了减轻所有这些(可能不是编译时间)的方法,但是因为我不是常规的所以我很难对我在Google中找到的东西进行评估。

所以我要求一些指导。如果你分享哪些有用,哪些工具/库是最新的和活着的,我将不胜感激。什么策略可以帮助C ++中的Web开发? FastCGI或嵌入式服务器(Asio / POCO / Pion /等)?您如何解决安全问题?

非常感谢您的帮助

9 个答案:

答案 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应用程序时,没有错误。这真的很有趣。你需要的是:

  • 模板系统
  • A CGI lib
  • 数据库API包装器,很可能是为了避免处理类似低级MySQL API的问题
  • 记录器

答案 3 :(得分:1)

给我们一些关于你要做什么的更多提示。

你可以用C ++编写一个很好的老式cgi程序,并用FastCGI运行它。我们过去常常这样做。

您也可以编写一个嵌入轻量级HTTP服务器的C ++程序。

它们都比使用perl或ruby之类的东西大得多。

那为什么是C ++?

更新

好的,明白了。关于FastCGI的主要问题是它避免了fork-exec来运行你的CGI程序,但它有点不同的API。这很好,但你仍然有处理HTTP内容的问题。

但是,有一些非常轻量级的HTTP服务器,例如CherokeeLighttpd。在类似的情况下(为设备构建Web界面)我已经看到人们使用其中之一并在其下运行他们的C / C ++程序作为CGI。特别是Lighttpd似乎专注于快速高效地制作类似CGI的东西。

另一个更新。我刚才cgicc指出了我:http://www.gnu.org/software/cgicc/

这可能会解决一些问题。

答案 4 :(得分:1)

ATL Server是一个C ++类库,允许开发人员构建基于Internet的应用程序。

答案 5 :(得分:1)

ATL ServerIt'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只是一个了不起的类。