Thrust VS PEGTL

Compare Thrust vs PEGTL 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
Thrust PEGTL
4 12
4,839 1,861
- 1.5%
6.9 7.2
3 months ago 7 days ago
C++ C++
GNU General Public License v3.0 or later Boost Software License 1.0
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.

Thrust

Posts with mentions or reviews of Thrust. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-17.
  • AMD's CDNA 3 Compute Architecture
    7 projects | news.ycombinator.com | 17 Dec 2023
    this is frankly starting to sound a lot like the ridiculous "blue bubbles" discourse.

    AMD's products have generally failed to catch traction because their implementations are halfassed and buggy and incomplete (despite promising more features, these are often paper features or career-oriented development from now-departed developers). all of the same "developer B" stuff from openGL really applies to openCL as well.

    http://richg42.blogspot.com/2014/05/the-truth-on-opengl-driv...

    AMD has left a trail of abandoned code and disappointed developers in their wake. These two repos are the same thing for AMD's ecosystem and NVIDIA's ecosystem, how do you think the support story compares?

    https://github.com/HSA-Libraries/Bolt

    https://github.com/NVIDIA/thrust

    in the last few years they have (once again) dumped everything and started over, ROCm supported essentially no consumer cards and rotated support rapidly even in the CDNA world. It offers no binary compatibility support story, it has to be compiled for specific chips within a generation, not even just "RDNA3" but "Navi 31 specifically". Etc etc. And nobody with consumer cards could access it until like, six months ago, and that still is only on windows, consumer cards are not even supported on linux (!).

    https://geohot.github.io/blog/jekyll/update/2023/06/07/a-div...

    This is on top of the actual problems that still remain, as geohot found out. Installing ROCm is a several-hour process that will involve debugging the platform just to get it to install, and then you will probably find that the actual code demos segfault when you run them.

    AMD's development processes are not really open, and actual development is silo'd inside the company with quarterly code dumps outside. The current code is not guaranteed to run on the actual driver itself, they do not test it even in the supported configurations.

    it hasn't got traction because it's a low-quality product and nobody can even access it and run it anyway.

  • Parallel Computations in C++: Where Do I Begin?
    3 projects | /r/learnprogramming | 23 Sep 2022
    For a higher level GPU interface, Thrust provides "standard library"-like functions that run in parallel on the GPU (Nvidia only)
  • What are some cool modern libraries you enjoy using?
    32 projects | /r/cpp | 18 Sep 2022
    For GPGPU, I like thrust. C++-idiomatic way of writing CUDA code, passing between host and device, etc.
  • A vision of a multi-threaded Emacs
    7 projects | /r/emacs | 20 May 2022
    Users should work with higher level primitives like tasks, parallel loops, asynchronous functions etc. Think TBB, Thrust, Taskflow, lparallel for CL, etc.

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.

What are some alternatives?

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

CUB - THIS REPOSITORY HAS MOVED TO github.com/nvidia/cub, WHICH IS AUTOMATICALLY MIRRORED HERE.

lexy - C++ parsing DSL

ArrayFire - ArrayFire: a general purpose GPU library.

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

Boost.Compute - A C++ GPU Computing Library for OpenCL

spirit - Boost.org spirit module

HPX - The C++ Standard Library for Parallelism and Concurrency

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

moodycamel - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11

pybind11 - Seamless operability between C++11 and Python

Taskflow - A General-purpose Parallel and Heterogeneous Task Programming System

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