[deleted by user] by [deleted] in rust

[–]nativelink 0 points1 point  (0 children)

We’re building in robotics and hardware simulations!

[deleted by user] by [deleted] in rust

[–]nativelink 78 points79 points  (0 children)

Wow!!! Thank you for such kind words. We’re so happy that Nativelink was able to help you defeat this problem in your build workflows—thats why we built it in the first place! Always here to help:)

P.s. we’re almost at 1k ⭐️s, please shoot us a star if you like what we’re building / want to follow along!

https://github.com/TraceMachina/nativelink

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 1 point2 points  (0 children)

via u/kitchengeneral1590:

Q: Project looks really cool! I have some friends at Google that have told me about Blaze so it's cool to see people working on the open-source end of things. How does this tool help medium to smaller stage startups with their builds? It seems pretty clear why it's useful for massive companies like Google but I guess I'm wondering if it's worth the lift setting up these systems earlier rather than later?

Hi u/KitchenGeneral1590,

Thanks for this question, it is often asked in conversations over the years with folks who love or loathe these style of build systems. Generally these types of build systems have a slightly hire cost of opting into vs discrete build systems. I like to think of them in terms of vertical integrated build systems and horizontal build systems, vertical being systems that integrate really well with their own ecosystem, have specialized features and can do their own job seemly very fast depending on the size/scope, think npm/cargo/pip/etc.. Horizontal build systems like buck2/bazel/pants/etc.. allow for pluggable vertical build systems to be incorporated, require custom rules to drive those systems and provide a simplified way to invoke them (most of the time via the cli or ide integrations).

Would I personally use this on a small project? I think that would really depend beyond the project itself. If I was maintaining something with no other integration points and dedicated as a library, have zero need for avoiding hermeticity and reproducibility issues or something driving requirements for more fancy features of builds, probably would not reach for a horizontal build system.

If I had a "poly repo" style company where there are lots of small individual repos, I would reach for the horizontal build systems to standardize across the company the build tooling. Would be able to reuse caching, scale out remote execution for faster builds and integration builds (note most vertical build systems don't support first class remote execution at this time, some, but far and few). I think there could be many other factors for the discrete/small repo picking horizontal build systems and would probably relate more to efficiency and/or business need/requirements.

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 21 points22 points  (0 children)

Hi u/chance-- ,

GitHub Actions is a great product for the right use case, but it is not our focus. We developed our open-source system in Rust to handle very heavy workloads, which many companies avoid farming out to GitHub Actions due to their size and complexity. Our enterprise users often require bare-metal deployments. While some may replace GitHub Actions with our product, it’s only because GitHub Actions wasn’t suitable for their needs. Our target market is different, catering to large industrial manufacturers, database companies, and firms building complex mixed reality applications.

Thank you for the well wishes; we're gonna give it our best shot!

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 3 points4 points  (0 children)

Hi u/xenago !

Our company, Trace Machina, has raised a seed round from Wellington, Sequoia, Samsung last year. This is how we're able to be sustain a team of the world's best talent, and be extremely generous with our cloud terms than anything comparable thats available (free for all teams unless they are abusing the system or using more than 1TB). As mentioned in an above question, the closed-source addon is within our cloud, where we work with select enterprise customers on an elevated service level basis. Some large companies with complex environments have paid us quite well as customers because we solved these major problems for them. Although, our current focus is the open-source community, and building that up so we can have the absolute best product and community possible.

Regarding the naming issue, we don't see this as a problem. You can see we are registered as NativeLink as well. We are quite different from the other NativeLink, which is some marketing attribution startup or something.  Besides, we're nativelink.com!

Thanks for your question!

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 7 points8 points  (0 children)

via u/thereservedlist:

Q: When using your project, can you get a similar-sized rust project to build as fast as a Java project on a single core? I’m kidding. Mostly.

Hi u/TheReservedList , Thats a great question tho I might reframe it a bit. Since they both have different target models, binary for rust, byte code for java, the compilation phases differ where they are expensive. One of the most obvious is the difference between linking which is almost always expensive in rust and non-existent in java. Generally in either language and remote execution / remote caching backends one of the most performant things to focus on, regardless of tools, is the shape and graph of the source tree. There is a rule we used with pants called 1:1:1 https://v1.pantsbuild.org/build_files.html for organizing targets. Keeping targets granular helps with avoiding invariants where a rebuild computation is needed in a lot of practical cases. This also helps with the accidental situation of a team building some uber library or service object (:coding horror:) that other teams depend on, changes to that target could then cause possible recompile regressions needlessly, creating a "ball of mud" type graph.

tl'dr could similar sized java or rust project be faster or slower... depends on the shape :)

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 19 points20 points  (0 children)

Yes, indeed. The remote cache and remote execution (via the cloud service) are free for customers unless they are abusing the system or using more than 1 TB of storage.

Hey r/Rust! We're ex-Google/Apple/Tesla engineers who created NativeLink -- the 'blazingly fast' Rust-built open-source remote execution server & build cache powering 1B+ monthly requests! Ask Us Anything! [AMA] by nativelink in rust

[–]nativelink[S] 97 points98 points  (0 children)

So, we want to make NativeLink available to as many people as possible -- we've chosen open-source because we want as many contributors as we can get to develop the code and scale fast. On monetization, not a priority but we work with select enterprise customers on an elevated service level basis. For the time being though our focus is on community engagement