Introducing Proxygen, Facebook's C++ HTTP framework -- Daniel Sommermann and Alan Frindell

proxygen.PNGFresh from Facebook's coding blog:

Introducing Proxygen, Facebook's C++ HTTP framework

by Daniel Sommermann and Alan Frindell

From the announcement:

We are excited to announce the release of Proxygen, a collection of C++ HTTP libraries, including an easy-to-use HTTP server. In addition to HTTP/1.1, Proxygen (rhymes with "oxygen") supports SPDY/3 and SPDY/3.1. We are also iterating and developing support for HTTP/2. ...

Proxygen began as a project to write a customizable, high-performance HTTP(S) reverse-proxy load balancer nearly four years ago. We initially planned for Proxygen to be a software library for generating proxies, hence the name. But Proxygen has evolved considerably since the early days of the project. While there were a variety of software stacks that provided similar functionality to Proxygen at the time (Apache, nginx, HAProxy, Varnish, etc), we opted go in a different direction...

spdlog: Fast C++ logging library

Just announced:

spdlog: Super fast C++ logging library [GitHub]

The description is really "in a nut":

Very fast, header only, C++ logging library.

Install: Just copy the files to your build tree and use a C++11 compiler

Features:

  • Very fast -- performance is the primary goal (see becnhmarks below)
  • Headers only
  • No dependencies
  • Cross platform - Linux / Windows on 32/64 bits
  • Mult/Single threaded loggers
  • Rotating log files
  • Daily log files
  • Console logging
  • Optional async logging
  • Logging levels
  • Custom formatting with user defined patterns

Boost 1.57.0 has been released

Some welcome news from Boost.org...

Boost 1.57.0 has been released

These open-source libraries work well with the C++ Standard Library, and are usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

This release contains one new library and numerous enhancements and bug fixes for existing libraries.

Read the full announcement for all the details, and for download links.

Perfect forwarding and universal references in C++ -- Eli Bendersky

plusprofilephoto.pngA nice tutorial on a feature that leads to convenient and safe calling code:

Perfect forwarding and universal references in C++

by Eli Bendersky

From the article:

One of the new features in C++11 aimed at increased code efficiency is the emplace family of methods in containers. std::vector, for example, has an emplace_back method to parallel push_back, and emplace to parallel insert.

Here's a short demonstration of the benefits these new methods bring: ...

HPX version 0.9.9 released -- STE||AR Group

The STE||AR Group has released V0.9.9 of HPX -- A general purpose parallel C++ runtime system for applications of any scale.

HPX V0.9.9 Released

The newest version of HPX (V0.9.9) is now available for download! Please see here for the release notes.

HPX now exposes an API fully conforming to the concurrency related parts of the C++11 and C++14 standards, extended and applied to distributed computing.

From the announcement:

  • We completed the refactoring of hpx::future to be properly C++11 standards conforming.
  • We overhauled our build system to support newer CMake features to make it more robust and more portable.
  • We implemented a large part of the parallel algorithms and other parallel facilities proposed by C++ Technical Specifications N4104, N4088, and N4107.
  • We added many examples such as the 1D Stencil and the Matrix Transpose series.
  • We significantly improved the performance of the library and the existing documentation

28 C++ User Group Meetings in November!

The monthly listing of the upcoming C++ User Group meetings brings a new record in November: 28 User Groups are meeting so far:

C++ User Group meetings in November

by Jens Weller

From the article:

Meetings in November

    4.11 C++ UG OC Qt - Qt Developer Days 2014 San Francisco
    4.11 C++ UG Warsaw - "Co nowego w C++14"
    5.11 C++ UG Saint Louis - First official meeting for our group
    5.11 C++ UG Austin - Austin C/C++ Boost Double Feature
    6.11 C++ UG Malmö/c++ folk - LLVM/Clang on Windows
    8.11 C++ UG C++ Italy - Italian C++ Community Meetup Bologna
    8.11 C++ UG Pune, India - C++11 Move Semantics and STL optimizations + A look at LibreOffic
    12.11 C++ UG Utah - Efficient Parsing with Boost.Spirit
    12.11 C++ UG San Francisco/ Bay area - Presentation and Q&A
    13.11 C++ UG NRW/Aachen - C++ User Gruppe (November)
    13.11 C++ UG Dresden - TDD
    13.11 C++ UG New York - Experience with C++11 in ArangoDB
    17.11 C++ UG Juce - JUCE Meetup Helsinki
    17.11 C++ UG Denver - Denver Tech Center C++ Developers
    17.11 C++ UG Austin - North Austin Monthly C/C++ Pub Social
    18.11 C++ UG Chicago - Highlights of the Standards Committee Meeting
    19.11 C++ UG Düsseldorf - Treffen der C++ User Gruppe NRW
    19.11 C++ UG Santa Barbara - Brett Hall will give a talk on Transactional Memory and C++
    19.11 C++ UG Seattle/NorthWest - Debugging, Profiling, and Diagnostics for C++ in Visual Studio vNext
    19.11 C++ UG Hamburg - C++14
    20.11 C++ UG Juce - JUCE Meetup Paris
    20.11 C++ UG Bristol - Save the date
    25.11 C++ UG Montpellier - Meetup C++ novembre
    26.11 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
    26.11 C++ UG London - monthly MeetUp
    27.11 C++ UG Rhein-Neckar - C++ Usergroup Meeting
    28.11 C++ UG Istanbul - Debugging with GDB
    29.11 C++ UG Russia - Novosibirsk Meeting

Looking for C++17 - Urbana Proposals for Core, Modules, Networking, Reflection and UB

The second part of my series on the C++ Proposals for the next Committee meeting in Urbana:

Looking for C++17 - Urbana Proposals for Core, Modules, Networking, Reflection and UB

by Jens Weller

From the Article:

The second part of my series about the proposals for Urbana, where the next C++ committee meeting will be held. The papers grand us a first view on a distant future - C++17...

C++ and Zombies: a moving question

One of the issues I was thinking about since C++Now: move and move-destruction

C++ and Zombies: a moving question

by Jens Weller

From the article:

This has been on my things to think about since C++Now. At C++Now, I realized, that we've might got zombies in the C++ standard. And that there are two fractions, one of them stating, that it is ok to have well defined zombies, while some people think that you'd better kill them.

Introduction to Modern C++ -- Olve Maudal

A few days ago in Norway, well-known C++ expert Olve Maudal presented the following slides. We hope you enjoy them too.

Introduction to Modern C++ (PDF)

by Olve Maudal

From the presentation:

C++ has evolved a lot since it was first introduced as "C with classes" with primitive support for object-oriented programming. In particular during the last 10-15 years the common use of the language has changed "dramatically" and the language itself has evolved accordingly. Modern C++ (C++11/14) is still very suitable for object-oriented programming, but now the language also provides good support for generic programming and functional programming. All of this while C++ is still a low-level language that can be used to create programs that compete with programs written in assembler both in terms of speed and size.

We start with a brief history of C++ before focusing on new features in C++11/14 and a demonstration of some typical modern programming techniques.