xee
PEGTL
xee | PEGTL | |
---|---|---|
13 | 12 | |
70 | 1,867 | |
- | 0.9% | |
0.0 | 7.2 | |
about 9 years ago | 9 days ago | |
C | C++ | |
- | Boost Software License 1.0 |
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.
xee
-
Krita fund has 0 corporate support
I took a look at the git blame, and the commit title is perfect.
https://github.com/gco/xee/commit/750196023da5457d9535b30299...
- Write Plain Text Files
-
Basic Structure of PDF Format
PDF is not my favorite file format
-
We Built a C++ Rendering Engine for the Web
It's also the one with the famous rant, "PSD is not my favourite file format": https://github.com/gco/xee/blob/7aec0d65f776fa59c58eb6cf163b...
-
Open source projects be like
// At this point, I'd like to take a moment to speak to you about the Adobe PSD format. // PSD is not a good format. PSD is not even a bad format. Calling it such would be an // insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having // worked on this code for several weeks now, my hate for PSD has grown to a raging fire // that burns with the fierce passion of a million suns. // If there are two different ways of doing something, PSD will do both, in different // places. It will then make up three more ways no sane human would think of, and do those // too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide // that these particular chunks should be aligned to four bytes, and that this alignement // should not be included in the size? Other chunks in other places are either unaligned, // or aligned with the alignment included in the size. Here, though, it is not included. // Either one of these three behaviours would be fine. A sane format would pick one. PSD, // of course, uses all three, and more. // Trying to get data out of a PSD file is like trying to find something in the attic of // your eccentric old uncle who died in a freak freshwater shark attack on his 58th // birthday. That last detail may not be important for the purposes of the simile, but // at this point I am spending a lot of time imagining amusing fates for the people // responsible for this Rube Goldberg of a file format. // Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this, // I had to apply to them for permission to apply to them to have them consider sending // me this sacred tome. This would have involved faxing them a copy of some document or // other, probably signed in blood. I can only imagine that they make this process so // difficult because they are intensely ashamed of having created this abomination. I // was naturally not gullible enough to go through with this procedure, but if I had done // so, I would have printed out every single page of the spec, and set them all on fire. // Were it within my power, I would gather every single copy of those specs, and launch // them on a spaceship directly into the sun. // // PSD is not my favourite file format. ``` Source
-
https://np.reddit.com/r/ProgrammerHumor/comments/n76935/open_source_projects_be_like/gxcievz/
Source
- Thank you for making our lives that much easier
-
PSD is not my favourite file format
I don't understand what the blog adds, I would rather the link pointed directly to
https://github.com/gco/xee/blob/master/XeePhotoshopLoader.m#...
which has been shared quite a lot in the past
-
UTF-8 as told by Rob Pike
It's the same with html and css: people shit on it all the time, but this just shows they don't have the imagination to see how much worse it could be.
Just compare to e.g. Photoshop file format: https://github.com/gco/xee/blob/master/XeePhotoshopLoader.m#...
- Adobe PSD Format
PEGTL
-
Show HN: Matcheroni, a tiny C++20 header library for building lexers/parsers
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
I found a library I wanted to test: Pegtl
-
What are some cool modern libraries you enjoy using?
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)?
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 🤨
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
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++?
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?
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
-
Wondered if anyone is interested in a c++ parser combinators library?
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?
stackedit - In-browser Markdown editor
lexy - C++ parsing DSL
notable - The Markdown-based note-taking app that doesn't suck.
cpp-peglib - A single file C++ header-only PEG (Parsing Expression Grammars) library
logseq - A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base. Use it to organize your todo list, to write your journals, or to record your unique life.
spirit - Boost.org spirit module
constitution - Constitution of India, in plain text (with git history)
C++ B-tree - Git mirror of the official (mercurial) repository of cpp-btree
organice - An implementation of Org mode without the dependency of Emacs - built for mobile and desktop browsers
pybind11 - Seamless operability between C++11 and Python
MySQL - MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.
sparsepp - A fast, memory efficient hash map for C++