ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.02k stars 3k forks source link

Diagram of modules #2452

Open Kubuxu opened 8 years ago

Kubuxu commented 8 years ago

go-ipfs is big project. My biggest struggle while getting into it was finding my way through it.

A diagram of modules, how they communicate, in which directories they are contained and they functionalities, possibly with data flow paths would be great "getting into" helper.

cjdns has very basic version of that but it lacks a lot (also its codebase is much smaller and more consistent, it is C after all) other info that would be useful.

It also should be easy to update so it doesn't stall as it did in case of cjdns. There were some changes made that were never included into this diagram.

whyrusleeping commented 8 years ago

@Kubuxu do you know of any software that could be used to generate these graphs nicely? I can definitely lay down the groundwork of building things out

Kubuxu commented 8 years ago

Unfortunately not, nothing I ever used/tired to use was good.

whyrusleeping commented 8 years ago

hrm... microsoft visio is nice, but very much not free. Might be worth us trying something from this list: https://www.maketecheasier.com/5-best-free-alternatives-to-microsoft-visio/

dignifiedquire commented 8 years ago

http://melp.nl/2013/08/flow-charts-in-code-enter-graphviz-and-the-dot-language/

whyrusleeping commented 8 years ago

hrm... i do really love dot... it just doesnt have a nice GUI

dignifiedquire commented 8 years ago

GUI??? who needs a gui when you can write it in nice code, check that code into git and generate awesome graphs from it :P

MichaelMure commented 8 years ago

Maybe PlantUML ? http://plantuml.com/state.html

ghost commented 8 years ago

I think we're looking for something like the diagrams in https://github.com/ipfs/js-ipfs, and maybe highlighting the used components for a few use cases -- the diagram tooling is secondary.

dignifiedquire commented 8 years ago

I agree on the tooling being secondary, if you post photos of handdrawn stuff or ascii art that's totally fine, and someone else can then turn them into a nicer format

klivin commented 6 years ago

I highly recommend draw.io, i recently jumped from omnigraffle, and it's fastest, best diagramming tool I've seen. I saw this diagram of Ethereum which lead me here: https://ethereum.stackexchange.com/questions/268/ethereum-block-architecture

I'd love love love to see a diagram of IPFS that's easier to grok than the Ethereum Proof of Work mechanism drawing.