Comments (3)
Hey, there are no strict rules really, but i would advice to decode to a structure that tries to resemble the "intent" of the format if possible and also in way that is easy to query and work with. So for example if the format is a nested tree structure it probably makes sense to decode it as such (see the mp4 or msgpack decodes maybe for example) but if the format is more specialized lists of things then just have a root struct with arrays i think (see elf or macho possibly for example).
Note that structs are automatically sorted by address but arrays are kept as they are.
If unsure of the structure i usually just get decoding and then try it on some files to see how it feels and how some queries would work, if awkward i restructure.
Do you have any specific formats in mind that you would like to add?
from fq.
I'm currently working on decoders for several different proprietary and unfortunately undocumented formats.
from fq.
I see, let me know how it goes, happy to help! and you can also email me if you want to share some code more in private.
BTW hopefully in some future i will get time to finish up the kaitai support that might help with some custom decoders, see #627. But i would probably still use go for some formats depending on how fancy decoding one wants.
from fq.
Related Issues (20)
- [Feature request] Support cwf, swf, zwf HOT 1
- [Feature request] Support pdf HOT 1
- [Feature] Support for Doom WAD Files HOT 5
- [feature] add decimal floating-point number support HOT 2
- mp3 file with id3 2.4.0 got killed from console output HOT 6
- typo HOT 3
- [Documentation] Any interest in creating a man page? HOT 5
- Feature request: zero-length start/end properties HOT 7
- Support for non-canonical tags with html HOT 5
- Color output is unreadable on terminals using light backgrounds. HOT 4
- make use of kaitai struct for additional formats? HOT 4
- [Feature request] Support image/bmp HOT 1
- zip: last_modification_date and last_modification_time are mislabeled or swapped HOT 2
- gzip files can contain multiple concatenated gzips HOT 8
- Investigate Data Format Description Language (DFDL) HOT 4
- Consider relicensing internal/mathex/float80.go HOT 3
- Enhancing Stream Processing Capabilities for Real-Time Binary Data Analysis HOT 1
- Winget support HOT 1
- readline upgrade HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fq.