6 ms·
Bifrost: A peer-to-peer communications engine with pluggable transports
- myself248 3y agoTo be clear, this is not BifrostNetwork.com which seems to be a cryptocurrency thing. The logos are different.
- chefandy 3y agoAnd also not Bifrost, the visual programming environment within Maya 3D.
- pieix 3y agoAlso not Bifrost, the synthetic training data generation startup.
- ethanbond 3y agoAlso not Bifrost, the Figma -> React code generator Edit: Ah looks like this company is no longer active unfortunately. On the plus side now the name Bifrost is available!
- mariojv 3y agoAlso not bifrost, the OpenStack orchestration project: https://docs.openstack.org/bifrost/latest/ https://docs.openstack.org/bifrost/latest/
- somehnguy 3y agoLet’s be clear - it also isn’t BiFrost, the incredibly powerful Windows Trojan: https://en.m.wikipedia.org/wiki/Bifrost_(Trojan_horse) https://en.m.wikipedia.org/wiki/Bifrost_(Trojan_horse)
- frabert 3y agoAlso not the Mali GPU https://developer.arm.com/Architectures/Bifrost https://developer.arm.com/Architectures/Bifrost
- client4 3y agoAnd to be clear, not Bifrost the submarine cable.
- grezql 3y ago[dead]
- troymc 3y agoAlso not a two-layer hoarfrost. https://www.britannica.com/science/hoarfrost https://www.britannica.com/science/hoarfrost
- kosolam 3y agoNot the bifrost that “Safely archives data from Apache Kafka to S3 with no Hadoop dependencies”
- lamontcg 3y agoChef server component was called bifrost as well: https://github.com/chef-boneyard/oc_bifrost https://github.com/chef-boneyard/oc_bifrost
- eks391 3y agoAnd to clear any ambiguation, it's not the Bitfrost security used in the Childrens Machine[0] , the 2012 laptop for developing countries [0] https://en.m.wikipedia.org/wiki/OLPC_XO https://en.m.wikipedia.org/wiki/OLPC_XO
- tonnydourado 3y agoI guess it goes without saying that it's not the mythical rainbow bridge connecting Asgard to Midgard
- squarefoot 3y agoAlthough drinking too much of Bifrost Winter Ale could make one see Asgard and Midgard for real.
- deleted 3y ago[deleted]
- Tyr42 3y agoAnd also not bifrost, the audio thing from Shiit audio.
- jayofdoom 3y agoAnd not OpenStack Bifrost, the deployment tool for ironicbaremetal.org...
- armatav 3y agoIt’s also not the nordic light bridge that connects the realms together
- QuiDortDine 3y agoAlso not the French sci-fi/fantasy periodical.
- dopidopHN 3y agoLook nice, I have difficulty to see the usage. Some type of mid level network army Swiss knife ?
- eatbitseveryday 3y agoI read the documentation but I don’t understand what use cases or problems this is meant to solve. What is this for?
- diggan 3y agoIt's a peer-to-peer "engine" with switchable components. Seems to run on different platforms (browsers, mobile, desktop, server). Basically the library helps two different computers to talk with each other, without any servers setup in the middle. At a glance, it looks pretty much like libp2p (https://libp2p.io/ https://libp2p.io/) but seems to integrate with libp2p as well (meaning you should be able to use Bifrost on one end, and libp2p on the other), so I'm guessing there is at least some fundamental difference, but I cannot spot it. Seems to use slightly different terminology compared to libp2p.
- squarefoot 3y agoYes, that is not very clear. It seems to me (corrections welcome) that it could sorta work as a application oriented VPN where a VPN cannot be installed. Something like: local_app_1--->Bifrost Client1-->Bifrost Daemon0-->OS0-->//network//->> same in reversed order local_app_2--->Bifrost Client2-->Bifrost Daemon0-->OS0-->//network//->> same in reversed order instead of: local_app_1--->OS0-->VPN0-->//network//->> same in reversed order local_app_2--->OS0-->VPN0-->//network//->> same in reversed order That is, each application has its own client tunneling to a common daemon which then tunnels using the usual network stack to a similar arrangement on the remote machine.
- aperturecjs 3y agoHi, author here. Thanks for checking out Bifrost. The short pitch is: any protocol over any transport with seamless cross-platform (browser <-> native) communication. Building internet applications often involves writing code that is tightly integrated with the choice of communications transport, for example, one has to make the design decision to use either WebSockets or WebRTC, and then all other design decisions are driven by that. Bifrost aims to allow developing applications without knowing or caring which protocols are used under the hood. The app can just say "Open a stream with peer X" and whatever configured transport(s) make that happen. I'm still working to improve the docs and new user experience, if you have any suggestions on how I can make it easier to understand, I'd greatly appreciate it!
- mgaunard 3y agowhat I care about with that sort of technology is that data is never queued. I doubt this engine makes this guarantee, since it supports TCP.
- mratsim 3y agoHow can you send and receive network packets without queueing? Besides quantum entanglement I mean.
- anonym29 3y agoA: Very unreliably!
- mgaunard 3y agoYou write the UDP payload onto PCI-Express, then the NIC writes it onto the wire as an Ethernet frame. Obviously you're limited by PCI-Express bandwidth then Ethernet bandwidth. There is also a bit of jitter tied to the underlying protocols but those delays aren't really significant for most applications. Meanwhile, TCP can queue data indefinitely, based on how the other end is sending acks and the size of the window.
- swaits 3y agoAnd what about all the switches, routers, bridges, firewalls, and whatever else in between endpoints? What a strange thing to require. It comes off a bit like X-Y. You seek high performance. But you state it as wanting zero copy networking. There’s a lot more to performance across the overall system than that.
- mxuribe 3y agoI was a little confused by this...maybe i'm not expert enough at networking. I initially thought this Bifrost was related to the matrix bifrost (https://github.com/matrix-org/matrix-bifrost https://github.com/matrix-org/matrix-bifrost) ...but don't think that is the case...I think because *this* bifrost seems lower in the network stack, whereas the matrix bifrost is higher in the stack, and more dedicated for puppeting users via bridging between different messaging networks (moreso at application layer)...?
- babyeater9000 3y agoI feel like git should have a standardized howto.md or something that gives you some version of instructions on how to use the software in this repo. Especially in a case like this where there's no context as to what this thing needs to be used for how it's useful why I should use it what the advantages might be etc.
- diggan 3y agoDisagree :) Having a `examples/` or `demo/` directory is already good enough, and this repository even has one of those too! https://github.com/aperturerobotics/bifrost/tree/master/examples https://github.com/aperturerobotics/bifrost/tree/master/exam... One of the examples seems relatively easy to grasp if you're a web developer, about how to do HTTP forwarding: https://github.com/aperturerobotics/bifrost/blob/master/examples/http-forwarding/http-forwarding.org https://github.com/aperturerobotics/bifrost/blob/master/exam...
- babyeater9000 3y agoI'm not a web developer. None of this is intuitive or easy to grasp for me. Even the inclusion of the demo and example directories weren't easy for me to find because they aren't standardized. The fsf also thinks that free documentation is important. https://www.gnu.org/philosophy/free-doc.html https://www.gnu.org/philosophy/free-doc.html . I view software like this as pretty exclusionary. We will have to agree to disagree, but I would say that the amount of people with requisite experience to understand software is lower than the amount of people who are (or in my particular case, were) interested in learning about it by looking through the source. This interaction is a prime example of why the free software movement stalls. Software written by insiders, for insiders is exclusionary from my point of view.
- diggan 3y ago> Software written by insiders, for insiders is exclusionary from my point of view. Where do you draw the line? At one point, you have to accept that some projects require deep and context-specific knowledge. I can't be expected to be handheld if I dive deep into some math libraries without knowing the prerequisites. And if I do anyway, it's up to me to figure out at least the basics on my own. The README has the examples and explanations you're looking for, they're just using the language common in the peer-to-peer ecosystem, as it's a peer-to-peer library/cli/daemon.
- omneity 3y agoI keep waiting for someone to build an alternative to wamp/autobahn and to deepstream.io Bifrost seems to be a great contender. Client code looks a bit convoluted, but that probably can be improved over time. Will keep an eye on this!
- xyst 3y agoNot a bad tool to exfiltrate data from a server.
- C60H92O6 3y agoThe README more or less describes the "what" but there's no "why". Why is this needed, who is this for (target audience), why did you build it, which gap is it closing, which problems does it solve in a homelab, or startup, or enterprise, i.e. "what's in it for me", how is it different than alternatives?
- omginternets 3y agoWhat does this offer that isn't available/sufficient in libp2p?
- aperturecjs 3y agoDynamic configuration of components. It uses a system of communicating controllers which is more flexible in terms of runtime reconfiguration. libp2p is an excellent project and can be integrated into Bifrost's system as a library.
- mike_d 3y agoSeems like it should have been just been a pull request to libp2p if that was really the only justification.
- omginternets 3y agoWhere can I read more?
- aperturecjs 3y agoCheck out the repo on GitHub as well as the others on the same GitHub organization! Also feel free to join discord and ask questions or shoot me an email. https://aperture.vision https://aperture.vision
- bifrost 3y agohuh.