Sunday, March 29, 2026
a1a12aba-6704-4a11-b3e7-1f7cdde82e0e
| Summary | ⛅️ Drizzle in the morning and windy from afternoon until night. |
|---|---|
| Temperature Range | 14°C to 19°C (57°F to 65°F) |
| Feels Like | Low: 50°F | High: 59°F |
| Humidity | 72% |
| Wind | 24 km/h (15 mph), Direction: 190° |
| Precipitation | Probability: 86%, Type: rain |
| Sunrise / Sunset | 🌅 06:39 AM / 🌇 07:06 PM |
| Moon Phase | Waxing Gibbous (38%) |
| Cloud Cover | 66% |
| Pressure | 1006.6 hPa |
| Dew Point | 51.58°F |
| Visibility | 5.86 miles |
Disclaimer: I want to first explicitly state I'm not trying to advertise that I'm looking for people. just seeking real-world insight on the subject as it's weighed on me morally.
If I cannot get the experience for 3D Modelling, Audio Engineering and Music Composition, if I genuinely struggle to learn to program, and fail at every turn to progress. What is it that I can do to make my game?
Would I simply be the "Director?", to me, that's laughable. I feel the issue with this, is "Payment". If I cannot provide a routine payment, weekly, by weekly or monthly, I feel like I'm being some cheap sleezebag conman. People will the skill, communication and ethic to put the time in and get something done, should be paid accordingly.
While being a "director" I feel I'd essentially be doing nothing but occasionally looking over shoulders (figuratively) and pointing at screens with my finger-fully pressed onto them (jk)
But the quest is, is this actually a thing? As someone who makes games, would you ever consider, or have done, this kind of work where it's either straight up free, done for experience or "the love of the game". Or at some point or another a payment if/when sales are achieved?
If there is any confusion in this feel free to ask for clarifications and where. I wanted to make this as clear as possible. the "Director" is simply a placeholder for w/e would best fit. I assumed that was suitable.
note:
(I have some 3D modelling knowledge that would be suitable for kick-starting someone into 3D modelling. Programming I can read and get the gist of it, but not fully write anything myself. Have not touched anything audio related beside Audacity.)
I have seen some developers use Patreon to fund their game's development. They usually offer in-development builds under a paid tier.
It's not yet clear to me if it works out for them. Do you have any experience with Patreon? Do you think it's worth pursuing? What are the pros/cons?
My intuition is that a Patreon could work for games which are more sandboxy/replayable in nature rather than linear experiences. The reason for this is that people who support on Patreon would have a reason to download and try the in-development builds rather than waiting for the finished product. Therefore, they have a compelling reason to join the Patreon in the first place.
The design is complete. very intricately. However, I'm a writer and designer, not a developer. I've reached out to a few small studios and publishers, but I'm just waiting for now. I'm posting here to see if anyone has advice for someone just getting into the space. Much appreciated!
So the way how I come up with a story... well I already have a story but I never know how it's supposed to go down so I make a mini version of my story in rpg maker and play out a few scenarios just to see how the plot plays out and if I like a scenario it gets adapted to my story, I just wanted to know do you guys have a way you make a story
I have a pretty successful table top game and the next step is try to transition it into a mobile game. It would only need to be 2d.
I can draw and have great creativity but absolutely 0 experience in coding. Where ahoud I start?
Any advice would be appreciated!
So I make game with 1bit style (using 2 colors) and showed it to my buddy. And I noticed that it's very difficult to him to determine what is clickable and what is not. The game has top down view and clickable objects just blend into the overall design. Also, game resolution is 640X360, so I found myself struggling with this problem in 1bit pixel art conditions
I have the problem of "Ideas are there, finishing them not so much". There's at least a dozen projects in my project folder that I began, where the overall timeline always looked similar.
- Starting the Project with Hyperfocus
- Working hours on basic mechanics, even well into the night
- A few days later, losing that focus
- Starting the project now requires mental pushing
- Even planning out what to do almost makes you cramp and you just can't do it
What was just a flow of autonomous work a few days before is now overwhelming, self doubt comes in, overthinking follows and the project starts collecting dust, probably forever if it's not deleted.
It's not even like it's impostor syndrom, there are ideas in there where I believe if I'd finish them, a lot of people would have fun with them, myself included obviously.
But I also don't really want to have a team to work on it for now, but that's because of the feeling of losing control over the project, while solo if I lose control it's 100% on me
In light of how doom and gloom everything continues to seem, I wanted to share some of my favorite experiences making games that motivated me to keep going with the projects I've worked on.
When we were releasing our first game, I messed up and didn't start the Steam review process of our game build until right before our planned release. We had put so much time and effort into releasing on this day, but Steam wouldn't approve it. I tried every support email I could find and no one could do anything for me. So I went to Reddit and found a thread with Gabe's email in it. I didn't expect anything, but I emailed him and not five minutes later our game was approved on Steam. I never got a response so I'll never know what actually happened, but it was the last email I sent.
My first E3 in 2016 we went with very early designs for our game, our characters were hand drawn and scanned into RPGMaker. We were taking the shuttle bus to the convention one of the days and our musician was sitting next to these other developers and showing them the game, I was terrified to see what actual game developers thought of our work. When we get off, they invited us to their booth (turns out they were the Ubisoft developers for Watchdogs) and genuinely treated us like any other game developer. That E3 was really special because I couldn't believe these big developers actually gave our game the time of day, but it was so supportive and so positive that I still credit that event with motivating us to get the game done.
I hope others have just as positive stories as well.
I saw that Steam are changing the way they are calculating regional pricing. I was wondering what people had thought of these changes. I haven't decided which path I'll choose and was hoping for some opinions.
Steam now offers three new ways to calculate regional pricing:
I looked at how Steam now calculates a $1.99 game.
It looks like ERCO price is now about 30% more than it was before. I don't see myself choosing this option myself as I want my games to be easily accessible.
The PPCO price is about 35% less than the before price. I am not sure whether to chose this one. My games are small and only cost a couple of dollars. At the moment my profits are basically non-existent so the idea of cutting that by 35% seems like a bad idea. Although 2*0.65 > 1*1.
The MVC price seems to have stayed around the same price.
I was wondering what others were planning on doing, and what you would choose for games that are originally a few dollars at most.
Below is a table showing the changes in pricing a $1.99 game.
| Currency | Old Price | Exchange-rate conversion only | Purchasing power conversion only | Multi-variable conversion | ERCO Difference Percentage | PPCO Difference Percentage | MVC Difference Percentage |
|---|---|---|---|---|---|---|---|
| GB Pounds | 1.69 | 1.49 | 1.35 | 1.79 | -11.83% | -20.12% | 5.92% |
| Euros | 1.99 | 1.69 | 1.39 | 2.09 | -15.08% | -30.15% | 5.03% |
| Swiss Francs | 2.25 | 1.59 | 1.89 | 1.79 | -29.33% | -16.00% | -20.44% |
| Russian Rubles | 82 | 160 | 52 | 99 | 95.12% | -36.59% | 20.73% |
| Polish zloty | 8.99 | 7.15 | 3.75 | 8.35 | -20.47% | -58.29% | -7.12% |
| Brazilian Reals | 6.99 | 10.99 | 4.99 | 7.95 | 57.22% | -28.61% | 13.73% |
| Japanese Yen | 235 | 310 | 200 | 265 | 31.91% | -14.89% | 12.77% |
| Norwegian Krone | 22.25 | 20.00 | 17.50 | 24.00 | -10.11% | -21.35% | 7.87% |
| Indonesian Rupiah | 20,499 | 33,499 | 9,649 | 20,499 | 63.42% | -52.93% | 0.00% |
| Malaysian Ringgit | 5.69 | 8.09 | 2.75 | 5.45 | 42.18% | -51.67% | -4.22% |
| Philippine Peso | 71.49 | 119.00 | 38.00 | 69.00 | 66.46% | -46.85% | -3.48% |
| Singapore Dollar | 2.15 | 2.55 | 1.59 | 2.39 | 18.60% | -26.05% | 11.16% |
| Thai Baht | 47.00 | 62.00 | 20.00 | 43.00 | 31.91% | -57.45% | -8.51% |
| Vietnamese Dong | 30,000 | 52,500 | 13,500 | 31,500 | 75.00% | -55.00% | 5.00% |
| Korean Won | 2,300 | 2,850 | 1,650 | 2,250 | 23.91% | -28.26% | -2.17% |
| Ukrainian Hryvnia | 50.00 | 84 | 21 | 52 | 68.00% | -58.00% | 4.00% |
| Mexican Peso | 26.99 | 35.75 | 18.99 | 30.75 | 32.46% | -29.64% | 13.93% |
| Canadian Dollar | 2.59 | 2.75 | 2.25 | 2.39 | 6.18% | -13.13% | -7.72% |
| Australian Dollar | 2.95 | 2.95 | 2.65 | 2.80 | 0.00% | -10.17% | -5.08% |
| New Zealand Dollar | 2.99 | 3.45 | 2.99 | 3.19 | 15.38% | 0.00% | 6.69% |
| Chinese Yuan | 11.00 | 15.00 | 7.00 | 11.00 | 36.36% | -36.36% | 0.00% |
| Indian Rupee | 105 | 179 | 40 | 109 | 70.48% | -61.90% | 3.81% |
| Chilean Peso | 1,300 | 1,799 | 819 | 1,499 | 38.38% | -37.00% | 15.31% |
| Peruvian Sol | 5.00 | 6.69 | 3.35 | 5.65 | 33.80% | -33.00% | 13.00% |
| Colombian Peso | 5.50 | 7.55 | 2.65 | 5.70 | 37.25% | -51.84% | 3.62% |
| South African Rand | 21.50 | 32.99 | 13.99 | 22.49 | 53.44% | -34.93% | 4.60% |
| Hong Kong Dollar | 13.00 | 15.00 | 11.00 | 12.00 | 15.38% | -15.38% | -7.69% |
| Taiwanese Dollar | 45 | 63 | 28 | 52 | 40.00% | -37.78% | 15.56% |
| Saudi Arabian Riyal | 5.25 | 7.45 | 3.89 | 5.99 | 41.90% | -25.90% | 14.10% |
| Emirati Dirham | 6.00 | 7.29 | 4.65 | 6.79 | 21.50% | -22.50% | 13.17% |
| Israeli New Shekel | 7.25 | 6.35 | 6.75 | 7.09 | -12.41% | -6.90% | -2.21% |
| Kazakhstani Tenge | 600 | 1,010 | 280 | 660 | 68.33% | -53.33% | 10.00% |
| Kuwaiti Dinar | 0.45 | 0.60 | 0.40 | 0.50 | 33.33% | -11.11% | 11.11% |
| Qatari Rial | 5.49 | 7.29 | 4.49 | 6.25 | 32.79% | -18.21% | 13.84% |
| Costa Rican Colon | 950 | 995 | 625 | 1,050 | 4.74% | -34.21% | 10.53% |
| Uruguayan Peso | 64 | 78 | 50 | 72 | 21.88% | -21.88% | 12.50% |
| CIS | 1.39 | 1.99 | 0.55 | 1.39 | 43.17% | -60.43% | 0.00% |
| SASIA | 1.29 | 1.99 | 0.55 | 1.39 | 54.26% | -57.36% | 7.75% |
| LATAM | 1.49 | 1.99 | 0.55 | 1.39 | 33.56% | -63.09% | -6.71% |
| MENA | 1.49 | 1.99 | 0.49 | 1.39 | 33.56% | -67.11% | -6.71% |
Apologies for any mistakes in the table.
Looks like Swiss Frans are a weird outlier with the MVC price lower than the PPCO price. Also a lot of currencies have ~60% reductions on PPCO which seem massive.
You can play around with Steam's new pricing here:
This was the third and final interview for a design job I'd been dreaming of at a very well regarded AA game studio. Two days ahead of the interview, and a few days after completing an unpaid art test that took several days of work, the external recruiter sent me an email saying that the job description had been "modified".
To my surprise, I found that the job had been completely changed, and suddenly turned from what was essentially a junior designer/video editor position into a social media manager role making important strategy and brand management decisions that were completely outside the scope of the original role.
I really tried to go along with it, but when the interview started, it was abundantly clear that both managers on the call were completely disinterested in me as a candidate and didn't even mention the art test I submitted. I honestly nearly broke down during the call after working so hard to land this. I even pulled a favor from an old professor of mine who knew someone at the company (but in a different department).
This was my fist professional game industry position I've ever interviewed for, and though I have years of experience in multimedia as a creative professional, I've never had anything like this happen before. Additionally, the hiring manager also acted and communicated in ways that were shockingly unprofessional for such a well-regarded company. Is this really the norm for the games industry?
It started with modding for me, I had more fun modding a game than actually playing it
Then I picked up Unreal and Maya
What was it like for you?
20 years in finance did not prepare me for this "market visibility"
But making a puzzle game? That’s like building the house underground, with no lights, and requiring a secret key just to see the front door. It’s an illiquid asset in a market that doesn’t even know your "exchange" exists.
My first game ever. I knew it would be hard, but I didn't expect to be this 'invisible'. Any other puzzle devs in the underground club?
A lot of creators on YouTube and other platforms have been saying that tutorial videos do not perform as well as they used to. Maybe they never had huge reach to begin with, but it does feel like things have gotten worse lately. Just look at channels like freeCodeCamp, or at how many tutorial-focused creators have either changed their content or stopped making tutorials altogether.
The channel that basically started my game dev journey was HeartBeast, through his Godot tutorials, and even he eventually moved away from that format. If you compare your favorite coding channel today with what it was pulling five years ago, the difference can be pretty dramatic.
A lot of people blame TikTok and short-form content, but I do not think that is the whole story. Short-form videos have been around for a while already, so I do not see them as the main villain here. My guess is that AI changed the way a lot of people approach learning. Now the average person feels more confident jumping straight into “vibe coding” or asking AI for help, so fewer people feel the need to sit through full tutorials.
What do you think? Are tutorials actually dying, or are they just evolving into something else?
Evidence:
- Why nobody's creating coding tutorials anymore (Maximilian Schwarzmüller)
- Why I'm taking a break from YouTube (HeartBeast)
- Why I stopped making coding tutorials (Traversy Media)
- Downfall of the 7-Hour Coding Tutorial (Boot Dev)
- Stop doing Coding Tutorials ... and why I stopped Making Them. (Stefan Mischook)
To be unbiased, Golang's multithreading model can be criticized in some areas. A question for Go developers: Was the limitation in thread management ever a major issue for you in real-world projects?
Posted about RonDO here a while back â it is a TUI productivity app (tasks + journal + pomodoro) built with Go and the Charm stack. Wanted to share an update since the project has gotten its first community contributions.
What is new:
Two contributors submitted PRs that added some solid features:
time.Format() calls.TEXT column with marshal/parse helpers. Batch mode (rondo batch) reads newline-delimited JSON from stdin, creates a fresh Cobra command tree per invocation to avoid flag state leaking between commands, and suppresses sub-command stdout (only JSON results). The delete guard checks ListBlocksIDs() before allowing deletion and returns exit code 1 unless --cascade is passed.On my end, I added:
rondo skill install â embeds a skill file that Claude Code picks up, so you can manage tasks from your editor. It is a Cobra subcommand that writes a markdown file to ~/.claude/skills/rondo/ (or .claude/skills/rondo/ with --project).SetContent() was resetting the scroll offset on every entry navigation.The codebase is at ~4k LOC of Go, CGO-free SQLite, and the batch-loading pattern (7 queries for all relations vs 6N+1) has held up well.
GitHub: https://github.com/roniel-rhack/rondo
Happy to discuss any of the patterns or the PR review process.
I’m building a terminal recording/replay tool in Go (similar to a PTY wrapper), and I’m trying to reliably capture the exit codes of commands executed inside an interactive shell.
I’m using a PTY (via `creack/pty`) and spawning something like bash or zsh, then sending commands programmatically.
The problem:
- The `cmd.Wait()` only gives me the exit code of the shell process, not individual commands.
- The PTY stream only gives `stdout/stderr` (merged) not exit status I need per-command exit codes for replay/debugging puposes
What is the best approach here?
1) Wrap every command like: `<command>; echo __EXIT__$?` and parse the PTY output.
2) Use shell features like `trap` or `PROMPT_COMMAND` to hook into command completion.
3) Avoid interactive shells entirely and run each command via `exec.Cmd` separately.
4) Some other better/cleaner approach (?)
Would love to know what people in similar tools have done. What’s considered the “correct” pattern here?
| submitted by /u/der_gopher [link] [comments] |
I've been working on a DSL that compiles to bytecode and runs on a small VM, all in Go. The VM design ended up being one of the more interesting parts of the project, and I haven't seen many write-ups about building one in pure Go, so I figured I'd share what I landed on.
The constraint that shaped everything
I needed a parser. Tree-sitter was the right model — incremental, error-recovering, fast — but the Go bindings are CGo wrappers around the C runtime. That meant no easy cross-compilation, no WASM target, and a C toolchain in every CI job. So I wrote https://github.com/odvcencio/gotreesitter, a pure-Go reimplementation of the tree-sitter runtime.
It's not at full parity with the C tree-sitter compilation toolchain yet, but it covers Go, C, Rust, TS/JS, Python, COBOL, and others. I didn't originally plan to go that deep on the grammar compilation side, but it had this nice side effect of closing the loop — you can go from a grammar spec to a working parser entirely in Go. That also opened the door to grammar extension and novel parsing applications, which I proved out with Ferrous Wheel, Danmuji, and more recently Gosx. As far as I know, that kind of in-process grammar composition wasn't really possible before. Genuinely a happy accident.
Anyway, gotreesitter gave me a parser that works anywhere GOOS/GOARCH can reach, and everything below is built on top of it.
Instruction format
Every instruction is exactly 4 bytes, fixed-width:
[opcode: 1 byte] [flags: 1 byte] [arg: 2 bytes LE]
Encoded with binary.LittleEndian.PutUint16. The arg is a uint16 index into a constant pool — strings, numbers, and decimals are all interned at compile time and referenced by index. Fixed-width instructions mean the VM never has to do variable-length decoding in the hot loop. The tradeoff is you're capped at 65K constants per pool type, which hasn't been a problem in practice.
The stack
const maxStack = 256 type Value struct { Typ uint8 Num float64 Str uint16 // pool index Bool bool ListIdx uint16 ListLen uint16 Any any // decimals, objects } The stack is a [256]Value — a fixed-size array, not a slice. No heap allocations during eval. Values are value types, not pointers, so pushing and popping doesn't create GC pressure. The Str field holds a pool index rather than a string, so string comparisons during eval are integer comparisons against interned indices when possible.
Eval loop
The core is a sequential walk through the bytecode with a plain instruction pointer. ~64 opcodes grouped into families — loads, comparisons, math, logic, control flow, iterators, aggregation. Each family has its own eval*Op handler:
for ip < end { op, flags, arg := decodeInstr(instructions[ip:]) switch op { case OpLoadStr, OpLoadNum, ...: evalLoadOp(...) case OpEq, OpNeq, OpGt, ...: evalComparisonOp(...) // ... } ip += InstrSize } There's a hard ceiling of 1,048,576 instructions per evaluation to prevent runaway rules. If you hit it, the eval returns an error rather than spinning.
What it costs
A simple equality rule (x == 42) compiles to 3 instructions / 12 bytes: OpLoadVar, OpLoadNum, OpEq. Evaluating that takes around 200ns. Compiling 10K rules stays under 100MB. The bytecode for all rules lives in a single contiguous []byte — each rule just knows its offset and length into that slice.
What it's for
This is the VM inside https://github.com/odvcencio/arbiter, a language for expressing governed outcomes — rules, feature flags, expert inference, workflows. The language compiles down through gotreesitter → IR → bytecode → this VM.
If you work on decision logic, fraud scoring, feature rollouts, or anything where you're encoding business rules, it might be worth a look.
Happy to answer questions about the VM, the compiler pipeline, or the gotreesitter port.
I'm proud to show you the first sibling project to the previously announced piaf: concordance, a library that takes structured capability data from sink (display), cable and source (gpu) and then returns an ordered list of available modes. The ordering and filtering are completely configurable, and every choice the library makes is traceable. The pipeline is as follows:
While working on this I learned more about what is needed from piaf as well, so that got updated along the way, and is currently at version 0.4.0.
Like I said with piaf, I'd be very grateful for any feedback or bug reports, but I'd particularly like your opinion if you've ever had to deal with graphics stacks and tooling, compositors, and embedded systems.
the crate: https://crates.io/crates/concordance
the docs: https://docs.rs/concordance
I figure this community is tired of seeing post after post about someone using Claude to build a Tauri app with a Rust backend and React frontend. (No flame, I did that too at one point, it was interesting and a different kind of fun). I also want to get better at writing clean and maintainable code, which is only going to happen by building things.
So I built mgfy: a small program for interacting with MongoDB from the command line. I find myself working with MondoDB quite a bit recently, and I'm constantly switching over to MongoDB Compass to look up things like collection names, field names, example documents, number of documents, etc. But my workflow is almost entirely in the terminal. So why not build a little tool for doing that from the terminal?
If you're willing to take a look at the code and provide feedback, I would love to hear it. Fill disclosure, I'm not a professional software developer. And since the code wasn't written with an LLM it is probably ugly in a uniquely human way. Hopefully that is a nice change of pace from all the AI (slop or otherwise).
im newly to rust these days and i had done a simple projects to learn rust from it so the question is "what is the best resource to learn ratatui for tui projects ?"
I made a post a few months ago about a game engine I made called Vectarine https://github.com/vanyle/vectarine with hot reloading and Luau scripting and got asked if the engine could be extended with Rust.
While having gameplay scripts in Luau is nice for hot-reload, fast prototyping and no compilation, I understand that sometimes, you want to have fast native code.
So I made a plugin system: you can write rust code, bundle it into a plugin, load it into the editor and it gets exported in the runtime. I've written some documentation on how to do that.
The lack of stable ABI is annoying as it means that a plugin needs to be tied to a specific version and build of the editor, but everything works otherwise.
I'm also a bit sad that loading a corrupted plugin can lead to crashes as I have no proper way to validate that the executable shared library is safe.
Also, for a plugin to work on a given platform, it needs to have been compiled for that platform, so if you use a plugin without Windows support, you cannot export your game to windows anymore.
the plugin manager of vectarine
Any idea on integrating a plugin system in a better way or other feedback on the engine?
"Fish 4.6 released today as the newest version of this Rust-based interactive shell for Linux and other platforms.
Fish 4.6 brings better handling for the width of emoji icons, the tab completion pager now left-justifies the description of each column, set_color improvements, and a variety of other minor enhancements." - Phoronix
all i want is a graphics library which isnt as simple as macroquad but not as painful as wgpu
Hello all,
I wanted to share something fun I’ve been working on, the repo is here https://github.com/pdufour/browserbrowserbrowser. As you can see from the video I’m browsing websites, you don’t see the dom change, that is because pages are being rendered via a WASM compiled Rust module, that renders it to a texture which can be displayed on canvas.
I built this as a fun challenge to see if it was possible, but I’ve already thought of some use cases like if you wanted to take a screenshot of the webpage you are on and save it.
Let me know what you think!
I’ve been working on a Rust-based alternative to fdupes (though I think fdupes is still more stable and performant overall).
The tool, rsdupes, helps find duplicate files in local directories and currently includes:
First public release (v0.1.0) is out:
https://github.com/theamigoooooo/rsdupes
https://github.com/theamigoooooo/rsdupes/releases
The project is still evolving, and I’d really appreciate any feedback - performance, UX, features, anything.
Also open to contributions if anyone’s interested.
Curious to hear what you think or how it compares to tools you already use 👀
There is .cargo/config.toml for cargo. There is .rustfmt.toml and deny.toml. There is .config/nextest.toml. Some even follow pyproject.toml approach and put configuration to Cargo.toml. Why every tool uses different scheme for configuration file placement?
My team works behind a firewall that blocks external requests on CI nodes due to infosec policies. We have an internal artifactory with proxies to golang, pip and crates.io. So far, so good.
With golang I only have to setup GOPROXY. With Python's pip I only have to set PIP_INDEX_URL. With cargo... it's difficult.
There are two config options that needs tuning and cargo supports setting config options via environment variables. However, while this works:
cargo \ --config 'source.crates-io.replace-with=\"artifactory\"'" \ --config 'source.artifactory.registry=\"${CRATES_IO_REGISTRY}\"'" this does not:
export CARGO_SOURCE_CRATES_IO_REPLACE_WITH=artifactory export CARGO_SOURCE_ARTIFACTORY_REGISTRY=${CRATES_IO_REGISTRY} When building my own stuff it's not a big deal to create a Makefile with $(CARGO) inside that I can replace with environment on CI. However, with third-party projects it's not that simple. There is also a possibility to generate global cargo/config.toml somewhere and override CARGO_HOME, but this requires patching containers, which is also more tedius than setting up the environment.
Is there a reason why source overriding via environment does not work?
I have been struggling a bit finding a library to do this. I want to:
Sniff TCP packets. It looks like I could capture the TCP packets with crates like `pnet` and `pcap`. I haven't tried them yet, if you have used them, do you have any suggestion between these? `pcap` seems more actively maintained.
Reassemble a TCP stream given the packets I captured in step 1. I haven't been able to find a crate that allows me to do this. And this feels like something that must already exist before trying to just reassemble them myself.
Can someone point me to a crate that ideally allows me to "follow" a TCP stream. I just want to sniff packets given a network adapter, and then just "read" the TCP stream given source/destination ports.
Thanks
Hi r/rust! I’ve just published version 0.16.0 of Azalea, a collection of Rust crates for making Minecraft bots, clients, and tools.
This release comes with support for Minecraft 26.1, significantly improved and optimized pathfinding, improved APIs for interacting with entities, more flexible APIs for custom accounts and worlds, support for accessing client XP, support for speed/slowness effects, and plenty of other smaller features, fixes, refactors, and new docs.
If you want to see the pathfinder in action, here's a video demonstrating some of the pathfinder’s new capabilities in this update (sprint jumping, path smoothing, water traversal): https://f.matdoes.dev/media/14c5550135eb42745e869f6c55b69b44441602aa0fa3dff2c0532450353b96d3.mp4
The full changelog is available at https://github.com/azalea-rs/azalea/blob/main/CHANGELOG.md.
If you're interested in contributing, please feel free! This is also the first release with a contribution guide: https://github.com/azalea-rs/azalea/blob/main/CONTRIBUTING.md (though it's admittedly a bit short rn).
I’ve been experimenting with Servo and built a small project called Gisberta, focused on customizing and understanding the servoshell layer rather than building a new engine.
Repo: https://github.com/JohannaWeb/Gisberta
This is not a new browser engine — it’s a modified shell running on top of Servo.
The project is based directly on Servo’s servoshell, with Servo vendored into the repository so everything builds and runs against the real engine.
The work is mostly around the shell/UI and integration layer, not the rendering engine itself:
servo:newtab internal pageI wanted to explore:
servoshell into something that feels like an actual productservoshell, not deep in Servo itself.servo: URLs) are a useful extension point Replacing servo:newtab was one of the cleaner ways to customize behavior without touching core engine code.From people familiar with Rust / Servo / large codebases:
If anyone has worked with Servo internals or embedding scenarios, I’d really appreciate pointers — especially around how far servoshell is meant to be extended vs replaced.