PEGTL VS cpr

Compare PEGTL vs cpr and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
PEGTL cpr
12 22
1,861 6,137
1.5% 1.5%
7.2 8.1
6 days ago 11 days ago
C++ C++
Boost Software License 1.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

PEGTL

Posts with mentions or reviews of PEGTL. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-06.
  • Show HN: Matcheroni, a tiny C++20 header library for building lexers/parsers
    4 projects | news.ycombinator.com | 6 Jul 2023
    Very cool, and I like the name!

    I'd be interested in reading about how Matcheroni compares with PEGTL and Lexy.

    https://github.com/taocpp/PEGTL

  • Use PEGTL to remove my clunky homemade parser
    2 projects | dev.to | 30 Jan 2023
    I found a library I wanted to test: Pegtl
  • What are some cool modern libraries you enjoy using?
    32 projects | /r/cpp | 18 Sep 2022
    I like PEGTL
  • Are C/C++ developers allowed to import libraries to make coding easier or are they expected to build every functions and methods from scratch (without importing anything like String.h)?
    1 project | /r/learnprogramming | 17 Jun 2022
    Sure - libraries that are expected to be entirely self-contained. The one that comes to mind is PEGTL, a parser combinator library that is intended to be embedded inside a larger program. Making it import more dependencies would break this philosophy. Similarly, in the Rust world, there are a variety of "no-std" crates that should be able to be imported even if the standard library is not available on the target platform.
  • TIL: Visual Studio has quantum state values 🤨
    1 project | /r/cpp | 17 Mar 2022
    The program in the post was just an example meant to illustrate the problem. Originally, this (new) behavior of MSVC broke my code in the PEGTL, see [this commit](https://github.com/taocpp/PEGTL/commit/e3c8cb499dc3d1d76d23f2d5d79469dcb15550c5) that I needed to apply to fix it.
  • We Built a C++ Rendering Engine for the Web
    2 projects | news.ycombinator.com | 10 Jul 2021
    As a professional C++ programmer I feel a lot of the reasons C++ gets this response is because it's simply not "batteries included" like Go or Rust.

    C++ is a very powerful, unopinionated language, that gives you a lot of freedom to attack your problem domain the way you best see fit.

    If you're writing a networked application, don't use POSIX sockets, go and find a higher level library. If you're parsing complex text formats, don't iterate over buffers with char*'s, go pick up PEGTL[0]. If you're working on graphs, or need to properly index in-memory data, go pick up Boost[1][2]. If you need a GUI, go pick up Qt.

    It's extremely common in C++, due to the lack of a universal package management solution, for people to try and "muddle through" and do shit themselves when it's far outside their core competency.

    At one of my last employers, the core product was parsing JSON with std::regex, simply because they couldn't be bothered to integrate a JSON library.

    [0] https://github.com/taocpp/PEGTL

    [1] https://www.boost.org/doc/libs/1_76_0/libs/graph/

    [2] https://www.boost.org/doc/libs/1_76_0/libs/multi_index/doc/i...

  • Is there anything like sly for C++?
    3 projects | /r/cpp | 1 Jul 2021
    You are looking for Boost.Spirit (https://www.boost.org/doc/libs/1_76_0/libs/spirit/doc/x3/html/index.html) or PEGTL (https://github.com/taocpp/PEGTL)
  • Why no more Lex/Yakk/ANTLR/whatever?
    5 projects | /r/cpp | 20 Jun 2021
    I personally prefer to use parsing combinator libraries in C++, where the "grammar" is just part of normal C++ and directly integrate. Examples are Boost.Spirit, pegtl, or (my own) lexy.
  • Rust's Most Unrecognized Contributor
    1 project | /r/rust | 2 May 2021
  • Wondered if anyone is interested in a c++ parser combinators library?
    1 project | /r/cpp | 13 Apr 2021
    While I'm not quite sure how this might transfer to your approach, with your Haskell-inspired style being quite different from our C++ templates, in the PEGTL our equivalent to your Char, which is called one, is variadic (true to the T in PEGTL a variadic template) and takes a list of possible matches.

cpr

Posts with mentions or reviews of cpr. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-08.
  • What C++ library do you wish existed but hasn’t been created yet?
    18 projects | /r/cpp | 8 Jul 2023
    This one might fit the bill https://github.com/libcpr/cpr
  • [CMake] Can't include external header in .h file
    2 projects | /r/cpp_questions | 8 Jul 2023
    cmake_minimum_required(VERSION 3.15) project(xrpc++ DESCRIPTION "C++ AT Protocol XRPC library" VERSION 1.0.0 LANGUAGES CXX) include(FetchContent) FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git GIT_TAG 2553fc41450301cd09a9271c8d2c3e0cf3546b73) # The commit hash for 1.10.x. Replace with the latest from: https://github.com/libcpr/cpr/releases FetchContent_MakeAvailable(cpr) FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz) FetchContent_MakeAvailable(json) add_library(${PROJECT_NAME} SHARED src/lexicon.cpp src/xrpc.cpp ) target_link_libraries(${PROJECT_NAME} PRIVATE cpr::cpr) target_link_libraries(${PROJECT_NAME} PRIVATE nlohmann_json::nlohmann_json) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION 1) target_include_directories(${PROJECT_NAME} PUBLIC include) set(CMAKE_BUILD_TYPE debug)
    2 projects | /r/cpp_questions | 8 Jul 2023
    include(FetchContent) FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git GIT_TAG 2553fc41450301cd09a9271c8d2c3e0cf3546b73) # The commit hash for 1.10.x. Replace with the latest from: https://github.com/libcpr/cpr/releases FetchContent_MakeAvailable(cpr)
  • How to convert libcurl to C++?
    2 projects | /r/cpp_questions | 16 Mar 2023
    There is also the cpr package which should offer a more c++ focussed interface for curl.
  • Trying to use libcpr, linking errors - newbie...
    1 project | /r/cpp_questions | 3 Dec 2022
    So I'm very new to C++ and I'm trying to write a C++ version of a tool that I put together in Python. I'm trying to use libcpr for all my HTTP needs. I've spent the day trying to get it set up and working, but I'm getting a bunch of linking errors when I try to run. I really don't know if I did the building of it correctly, I'm trying to use Visual Studio Community 2022 and the Usage section of their docs talks about CMake and a couple package manager methods.
  • Como são feitos os downloaders? (exemplos no texto)
    2 projects | /r/brdev | 2 Dec 2022
  • Standardise a C++ build tool and package manager?
    2 projects | /r/cpp | 27 Sep 2022
    I think vcpkg manifests have solved a really key portion of the "please give me these libraries" problem. Couple lines in a json file, pass CMake to your vcpkg toolchain script path and triplet, and you're pretty much done with dependencies. I actually used it for a project with libcpr/cpr and a couple other popular libraries, and I was shocked at how painless it was to get up and running with some web request stuff.
  • What are some cool modern libraries you enjoy using?
    32 projects | /r/cpp | 18 Sep 2022
    Libraries like nlohmann's json, cpr, fmt are prime examples of what I'm seeking. Any suggestions?
  • I'm getting a 422 Validation Failed from Github API. Only when making a request with the Cpr library.
    1 project | /r/cpp_questions | 17 Sep 2022
    Basically specifying the language and the repo, and it does work when the request is made from postman or from the browser. However, when using https://github.com/libcpr/cpr, I'm getting the following response:
  • how to make a C++ web scraper?
    2 projects | /r/cpp_questions | 10 Aug 2022

What are some alternatives?

When comparing PEGTL and cpr you can also consider the following projects:

lexy - C++ parsing DSL

libcurl - A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

cpp-peglib - A single file C++ header-only PEG (Parsing Expression Grammars) library

C++ REST SDK - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

spirit - Boost.org spirit module

cpp-httplib - A C++ header-only HTTP/HTTPS server and client library

C++ B-tree - Git mirror of the official (mercurial) repository of cpp-btree

Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11

pybind11 - Seamless operability between C++11 and Python

curlpp - C++ wrapper around libcURL

sparsepp - A fast, memory efficient hash map for C++

POCO - The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.