Tuesday, March 31, 2026
8960f6ae-bc6d-4f5f-a3b7-5b1a956cd94c
| Summary | ⛅️ Partly cloudy starting in the afternoon. |
|---|---|
| Temperature Range | 11°C to 19°C (52°F to 66°F) |
| Feels Like | Low: 45°F | High: 65°F |
| Humidity | 67% |
| Wind | 15 km/h (9 mph), Direction: 211° |
| Precipitation | Probability: 0%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 06:36 AM / 🌇 07:07 PM |
| Moon Phase | Waxing Gibbous (45%) |
| Cloud Cover | 35% |
| Pressure | 1013.35 hPa |
| Dew Point | 48.3°F |
| Visibility | 6.03 miles |
ok so even tho it's just a simple crud, it's actually pretty cool to realize u're buildin it with a rust web framework. like yeah it's nothin crazy, just a lil finance app for my wife, but the fact that rapina is runnin underneath makes it feel different from ur average flask or express app
rust web dev is real, and startin with somethin simple is honestly the perfect way to get a feel for how rapina handles routing, requests, all that stuff, without drowning in complexity right away. small project, but pretty satisfyin
I was trying to find a free, fast, and easy-to-use tool to view flights on a map in real time, but everything I found was either clunky or behind a paywall.
So I decided to build my own.
It’s written entirely in Rust + WebAssembly, runs 100% in the browser (no backend/server), and can display 10,000+ flights in real time.
The website is at https://flight-viz.com
Since I wasn't expecting so many users rushing into this, my server's ip got rate limited due to I need to do CORS getting the flight data. Now I just implemented OpenSky account login (Free to sign up), you can create a free account to use the website when the main server is rate limited. (Disclaimer: I'm not affiliated with them, just use their data source, you can create an account with them for FREE to circumvent the 429 rate limit error. hoefully my server limit will get lifted tomorrow and I have implemented CORS cache so it shouldn't happen again.)
Hi everyone, I've been working on a crate called index_type and wanted to share it.
It's all about strongly typed indices. Instead of passing raw usize values around, you define types like NodeId, EdgeId, etc., and use those to index your collections. That way, mixing up indices from different collections becomes a compile error instead of a runtime bug.
```rust
struct NodeId(u32);
let mut nodes: TypedVec<NodeId, String> = TypedVec::new(); let id = nodes.push("Alice".to_string()); println!("{}", nodes[id]); ```
I know index_vec exists and covers similar ground - this started as a personal experiment to explore a slightly different design, with more emphasis on flexibility and explicit failure handling.
Some things I wanted to include:
u8, u16, u32) to save memoryNonZero* support so Option<Index> stays the same sizeTypedArrayVecenumerate, ranges, etc.)What's there now:
Vec, slices, arrays, and fixed-capacity vectors (AKA ArrayVec)no_std supportiter.typed_enumerate::<MyIndex>())NonZero index supportNOTE: I did use AI to some degree when working on this project, mainly for generating tests and documentation, but the core design and implementation was hand-written by me. I know the guidelines around AI in this sub-reddit are quite strict so I thought I should mention it.
Is there a reason to implement new_with_error inside impl Generic<_, std::io::Error> with a separate E type parameter, instead of having another impl with the E type parameter at the impl declaration ?
`` impl<F: AsFd> Generic<F, std::io::Error> { /// Wrap a FD-backed type into aGenericevent source that uses /// [std::io::Error`] as its error type. pub fn new(file: F, interest: Interest, mode: Mode) -> Generic<F, std::io::Error> { Generic { file: Some(NoIoDrop(file)), interest, mode, token: None, poller: None, _error_type: PhantomData, } }
/// Wrap a FD-backed type into a `Generic` event source using an arbitrary error type. pub fn new_with_error<E>(file: F, interest: Interest, mode: Mode) -> Generic<F, E> { Generic { file: Some(NoIoDrop(file)), interest, mode, token: None, poller: None, _error_type: PhantomData, } } } ```
I feel like much of the functionality traits provide can be faked with `impl A<Concrete1>{ ...}` pattern.
- It is not as convenient as traits as you need to explicitly pass such dictionary types explicitly.
- I have yet to come up with how to encode associated types.
- Unlike traits there is no way to encode "this method must be implemented". This can be solved via func pointer typed fields in the struct
- You can kinda fake default method impls with `impl <T> A<T>` but since you cannot have the required methods it is just smoke and mirrors.
- You can fake bounds by accepting a dictionary struct as argument/field etc. (added after the edit)
- You can fake super traits via taking another such dictionary struct as an argument.
- Unlike traits this way of doing ad hoc polymorphism does not suffer from coherence requirements.
- Unlike traits you can change the number of parameters of methods between different implementations for a concrete type.
I just noticed this and wanted to share. I might have missed some other pros and cons so i'd be grateful if you could point some other caveats/upsides if this strategy.
Edit: I added a preliminary playground link. I plan to expand further after work
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=f55317b6ec9b0a047e9eddb1472b2df1
Edit 2: I added more examples
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=cc26e442bf39671e172554f53f3d9ed9
new since 1.0.0
*A bug not reported is a bug nonexistent! Report any bugs on github! *
I’m working on a fairly large Rust project, and my local machine is a MacBook Air M2 with only 8GB RAM. I wanted a way to build it successfully on local hardware only, without using a VM, Docker, or any cloud build service.
I found a setup that works reliably for me. The main improvements were: limiting Cargo parallelism with -j 1, building only the package or binary I actually need instead of the whole workspace, and avoiding unnecessary workspace-wide rebuilds.
If the project is a workspace, building only one package with -p/--package is much lighter than building everything, and Cargo also lets you narrow the build further with target selection such as --bin or --lib.
For day-to-day development, using cargo check first is much faster than doing full release builds every time, because it is intended for fast verification during development rather than producing the final optimized binary.
What helped most in the long run was splitting the codebase into smaller crates inside a workspace, so changing one area does not always force a rebuild of the entire project. That approach was also highlighted by developers discussing faster build workflows for large Rust codebases.
This is the pattern that worked for me:
cargo check -j 1 -p api cargo build -j 1 --release -p api cargo build -j 1 --release --bin api If needed, I also point Cargo directly at one manifest instead of building from the workspace root:
bashcargo check -j 1 --manifest-path apps/api/Cargo.toml cargo build -j 1 --release --manifest-path apps/api/Cargo.toml For anyone else on a low-memory machine, the practical fixes that helped me most were:
-j 1.-p.--bin or --lib.--workspace unless everything really needs to be rebuilt.I’d still be interested in other lightweight optimizations for local-only Rust builds on low-RAM Apple Silicon machines.
As part of a web app project at school 42 (ft_transcendence), I want to build a Rust learning platform entirely in Rust — the twist is, I'm learning the language myself along the way. Is this realistic in 3 months? Any advice, feedback, or reality checks are welcome. Thanks!
I needed to fix scannos in tens of thousands of line-based text files, so I built a tool called Okapi on top of ripgrep to let me find them in context and fix them in bulk using my text editor. Install it with homebrew.
More at the blog post.
in the past we've felt stuck at times by missing functionality in stable Rust, without a clear path forward except to wait. In practice, waiting has not been a fruitful strategy. So, we set about fixing these limitations ourselves
been contributing to rapina for a while now and still at it, so figured i'd post about it here cuz i never see it mentioned
rapina is a rust web framework. not an axum wrapper, not trying to be the next rails or whatever. it just tries to make structuring a web app less annoying
axum is great , but it's basically just a router + extractors. you still gotta figure out project structure, module wiring, all that stuff yourself
rapina ships a cli (`rapina new`, `rapina add`, `rapina import`) that scaffolds your project, generates DTOs and handlers, and auto-wires your `mod` declarations in `main.rs`. less boilerplate, more actual work
ngl, mainly cuz i wanted to get into rust oss and this project is small enough that my PRs actually matter. been working on the jobs cli subcommand, codegen fixes, new router methods. stuff that's approachable but still teaches you a lot abt how a framework is built
still early, but moving fast. worth checking out imo
jaq is a jq clone with focus on correctness, speed, and simplicity.
jaq 3.0 brings support for many new input and output formats, a brand-new user manual, improved compatibility with jq, and an easier API to use jaq from your own Rust programs.
jaq does not contain any machine-generated content (including LLM).
Enjoy! :)
I'm building a real-time chat server in Rust using a hand-rolled actor system on top of Tokio. Actors communicate via mpsc channels and use tokio::sync::oneshot for request-response. The architecture looks like:
UserSession ──mpsc──► Router ──mpsc──► PersistenceActor ──mpsc──► RoomActor ──mpsc──► PersistenceActor
The problem is that every forwarded request creates a chain of redundant oneshot channels + bridging tasks. For example, SendDirectMessage:
// UserSession: creates oneshot #1, spawns task to await reply let (tx1, rx1) = oneshot::channel(); router_sender.send(RouterMessage::SendDirectMessage { respond_to: Some(tx1), .. }); tokio::spawn(async move { if let Ok(ack) = rx1.await { ack_sender.send(ChatMessage::MessageAck { .. }).await; } }); // Router: creates oneshot #2, spawns task to bridge #2 → #1 let (tx2, rx2) = oneshot::channel(); persistence_sender.send(PersistenceMessage::Persist { respond_to: tx2, .. }); tokio::spawn(async move { match rx2.await { Ok(Ok(())) => { tx1.send(ack_ok); } Ok(Err(e)) => { tx1.send(ack_fail(e)); } Err(_) => { tx1.send(ack_fail("timeout")); } // not actually a timeout, sender dropped } }); So a single message persistence incurs 2 oneshot allocations + 2 tokio::spawn calls purely for response plumbing. This pattern repeats across 6 message types (SendDirectMessage, GetPaginatedMessages, JoinRoom, GetRoomMembers, SyncMessages, SendRoomMessage).
The persistence actor is a thin wrapper around a gRPC client (tonic), which is already Clone + Send + Sync and safe to call concurrently. The room actor does need serialization for broadcast/membership mutations.
Option I'm considering:
Replace PersistenceActor with Arc<PersistenceService> — the router calls async methods directly, eliminating the inner oneshot + spawn for all persistence operations. The UserSession → Router oneshot stays.
New week, new Rust! What are you folks up to? Answer here or over at rust-users!
Mystified about strings? Borrow checker has you in a headlock? Seek help here! There are no stupid questions, only docs that haven't been written yet. Please note that if you include code examples to e.g. show a compiler error or surprising result, linking a playground with the code will improve your chances of getting help quickly.
If you have a StackOverflow account, consider asking it there instead! StackOverflow shows up much higher in search results, so ahaving your question there also helps future Rust users (be sure to give it the "Rust" tag for maximum visibility). Note that this site is very interested in question quality. I've been asked to read a RFC I authored once. If you want your code reviewed or review other's code, there's a codereview stackexchange, too. If you need to test your code, maybe the Rust playground is for you.
Here are some other venues where help may be found:
/r/learnrust is a subreddit to share your questions and epiphanies learning Rust programming.
The official Rust user forums: https://users.rust-lang.org/.
The official Rust Programming Language Discord: https://discord.gg/rust-lang
The unofficial Rust community Discord: https://bit.ly/rust-community
Also check out last week's thread with many good questions and answers. And if you believe your question to be either very complex or worthy of larger dissemination, feel free to create a text post.
Also if you want to be mentored by experienced Rustaceans, tell us the area of expertise that you seek. Finally, if you are looking for Rust jobs, the most recent thread is here.
I constantly trip up about the order in which ACTUAL vs EXPECTED are specified in an assertion.
Rust calls it "left VS right". I wish that it was more opinionated in this regard, because I frequently come across projects that have different orders even within the same test module!
Maybe this is an idiom that we can all agree on, and change the actual assert_eq! message to be something like "expected: ..., actual: ..." OR "actual: ..., expected: ..." instead of "left: ..., right: ..."
edit: I made a proposal on the Rust internals forum to change the error message of assert_eq!
Are there any Italian Rust programmers working from Italy? (I mean even basic or intermediate Rust level).
I need someone working in Italy for collaborations and/or hiring at startups, because I know practically no Rust programmers in Italy. I'm checking Reddit to see if I can find anyone.
Here's another update on AstroBurst, the astronomical image processor built with Rust + Tauri + WebGPU. Releasing v0.4.5 with some architecture changes I think this community might find interesting.
What's new in v0.4.5 (Rust side):
mapv. Idempotent by design(2m-1)x - m changes sign across the domain. GPU shader (WGSL), CPU worker (JS), and Rust backend now use identical symmetric |D| < eps guard, producing pixel-identical output on all three pathspar_iter_mut().zip() chain of 4 slices replacing sequential loopon_window_event(Destroyed) clears appDataDir/output/ to prevent disk fill from large JWST intermediatesresolve_output_dir fallback now catches Windows error 5 (ACCESS_DENIED) alongside POSIX 30A note on transparency: As I've mentioned in previous posts, this project is not vibecode, but I want to be honest that this particular version relied on AI more than I would have liked, especially for the frontend module and some Rust calculations outside my area of expertise. I tried to be as careful as possible with the Rust backend, but as a only developer it's simply not feasible to build frontend, backend, new features, and refactoring all at once without some AI assistance, so I ended up delegating parts of it, which introduced some rough edges.
My current focus is stabilizing this release. As it stands, AstroBurst is a fully functional tool for processing JWST, Hubble, and ground-based telescope data. For now, my priority is fixing reported bugs, improving test coverage, and refactoring AI-generated frontend code before adding new features.
This project is completely open source (GPL-3.0), so feel free to contribute. Any help would be genuinely appreciated, especially on the Rust side.
GitHub: https://github.com/samuelkriegerbonini-dev/AstroBurst
A few times, I've found myself needing a type with "stages" that add upon eachother, usually when dealing with some kind of graph structure. One way of doing this is:
enum Thing { Stage1 { a: u8 }, Stage2 { a: u8, b: u8 }, Stage3 { a: u8, b: u8, c: u8, d: u8 }, } But that requires some ugly pattern matching when trying to write code that works for multiple stages:
match thing { Stage1 { .. } => panic!("stage 2 or 3 required"), Stage2 { a, b } | Stage3 { a, b, .. } => todo!(), } It also doesn't work well when switching stages because fields need to be moved into the other variant rather than just staying in place. This isn't a problem for this example, but it is in a real usecase where some fields are not Copy.
The other way I have found is:
struct Stage3 { c: u8, d: u8, } struct Stage2 { b: u8, stage_3: Option<Stage3>, } struct Thing { a: u8, stage_2: Option<Stage2>, } This avoids some of the problems of the other way, but it's also pretty ugly to work with, and it requires defining a lot of extra structs, probably in a dedicated module, depending on how many stages you need.
Is there a nicer way of doing this?
Edit: To clarify, there is a constraint that Thing has the same type regardless of what stage it's in. It needs to be able to be stored generically over its stage. This is why the builder/typestate pattern doesn't work here.
I was holding my copy of Mortal Kombat 11 Ultimate today and it got me thinking about how strange this series is compared to others.
Each entry does not just build on the last one. It almost reinterprets what Mortal Kombat should feel like.
MK9 felt like a return to fundamentals. MKX pushed speed and aggression. MK11 slowed things down and focused more on spacing, timing, and control.
Same franchise. Completely different philosophies. And yet, it still feels like Mortal Kombat every time.
I am curious though at what point does a sequel stop being a continuation and start becoming a redesign?
So, I’m actually going to discuss a lot of things im thinking of in one post— bear with me. I need the opinions of people more experienced than I am, please and thank you!!
Im a teenager who took a surface level interest in game creating. Im open to learning of course, and im putting in an active effort to learn how to code. I’ve been drawing for a lot of my life, so I can at least say that if I wanted to be a solo dev, I’d have that bit covered. Is it naive to think I can make a multiplayer game and learn luau all on my own? I genuinely need the honest truth.
I’m honestly just picking this interest up just to broaden my horizons a little. If im being honest, it’s more the concept of game making that’s driving me forward, because I think I’ve always enjoyed video games, but that enjoyment comes more so from the artistic aspect. Part of it is also because if I’ve at least stepped into coding, I could decide if I wanted to pursue it as a career path.
Anyway, that brings me to my next part— how do you stay motivated/inspired to keep making what you’re trying to make? With the little knowledge I know, I get so stuck making even the most basic things, and I’m not even sure if I’m taking the right approach with learning. (I rely on YouTube tutorials, though I often feel it’s not nearly enough.) Getting stuck gets frustrating quick. So how do you keep going? What was it that made you like the process instead of dreaming of the end product for you? There’s a lot I want to explore, so I guess I’m asking the more experienced folk: how did you continue pursuing this path, and what started your passion for it? Gush about all of it— I’d like to try my best to adopt that mindset.
Thank you so much! And sorry for the long read.
For over 10 years now, our small team have made free open source tools for managing dialogue and narrative orchestration in Unity, now used in thousands of games. For many of those years, we have collaborated with Decrepit Games to offer a Yarn Spinner port for C# Godot, but we've always wanted to offer more.
Recently, we completed our versions for Unreal Engine and GDscript Godot! We're calling them an alpha while the API is still in slight flux, but we expect to soon move to stable beta as we finish up full samples and high-level guides for these new offerings. We've tested them internally, but nothing compares to the wild and wonderful things new users try to do with tools so we would love you to install it, use it, try to break it, and tell us what you like and don't!
We're especially curious to hear from people across the spectrum of new to Yarn versus used it in other engines, and new to the engine or not. If you've never used Yarn before, you can play around with it first in our online playground to learn the syntax or follow our beginner guides.
The tools are currently up on GitHub (link for Unreal, link for GDscript Godot), with plans to also offer them via various asset stores and Itch once released, with the same pay-if-you-like model as our existing versions.
Enjoy, mates!
It seems like a lot of devs enjoy building systems and mechanics, but finishing and polishing the full game is where things fall apart. Which part do you think is harder, and why?
Background:
I'm a CS PhD student, my research is in pricing algorithms, but a lot of my classmates are in game development stream. Most of them are making indie games as a part of their thesis (which I honestly found really interesting and creative!)
After talking with many of them I got curious about exploring the entire gaming market, and found lots of good data available from Steam. Then I decided to build a tool that can help developers analyze the market, genre saturation, prices, and revenue estimates.
Please note that I'm not a game developer myself and I'm just trying to share interesting data I found.
Some metrics provided below are estimates, such as revenue, copies sold, and some others. In order to compute them I use some data science modelling along with my pricing algorithms experience. The numbers probably deviate from real revenues, but I tried my best. Prices and revenues are in USD.
The Statistics Numbers:
The revenue distribution:
Think of it this way: for every 1 game that made over $68k, there are 7.5 games that made less than $7.5k.
51% of games had less than 10 reviews. From the remaining 49% of games, majority of the games have "Positive" and "Very Positive" feedback.
In 2025, there were 14.3% more games release compared to 2024, so the nice is growing!
I don't have a grand conclusion here. I'm building a tool to make this kind of data easier to explore for the community.
Happy to share more data and hear your thoughts!
I have the bones of a very basic NSFW game complete, but I know that it's been a notable year for NSFW games. So, I had a few questions before I continued.
For anyone who has released a project on Itch.io, how did you have to monetize it? Are you putting the game up for free and getting money through Patreon, or is there a different site?
How have you been getting the game to players? I know NSFW games have been hidden, or is it just the really objectional ones?
How much money have you personally made from a single game?
I know it's a lot of questions, but I know the field is weird right now and most of the old data is wrong. Thanks for anything you decide to share.
I've been working on video games in my free time for almost a decade, and am only now close to getting my game demo on Steam, with a playtest being live for ~6 months now.
And I still find myself encountering small "aha" moments or understanding things that might seem trivial but I feel like they make or break a game's design and flow.
For example, I'm working on a survivorslike and only just realized that I should "uncover" parts of my menus only when they become relevant, like only showing the player that there are challenges once they complete the first one.
So I'm looking for some things you might've discovered on your own that seemed like they were obvious in hindsight, hopefully I could apply those to my game or others could to theirs =D
Guys I have a question that I think is really important but isn't tackled in a lot of game design videos. How do you make a game well designed hard and not boring. I'm making a boss rush game like cuphead and how do you make it interesting and creative?For example there is a boss rush game called helspawn which is well designed but is boring here's a linkHELLSPAWN by okay_cam
Hello! I'm working on a new game I've wanted to make for a very long time.
Don't want to post the link here as I don't know the culture/etiquette, but will if I get multiple comments here saying it's ok.
if it's not, any suggestions for where to post it? obviously completely free, no ads or stupid crap. you play it in your browser.
Description: A 2d medieval merchant game with simple graphics , inspired from games like mount and blade warband/bannerlord, but with a heavy focus on economy and business, while the wars, laws, other things you interact with but don't control. Every time you play the world is generated, and kings with different personalities, and kingdoms with different laws , town, and different geographies, no two games are the same.
You are one person, but can hire workers for buildings. There are social statuses with each kingdom, citizenship, that give you certain rights and privileges. There is a skills tree system, a trading guilds system, an achievements system. There is no real winning, but there are obvious goals and there are achievements. The most obvious 'win" would be to become the richest merchant in the game. There are thousands of simulated NPCs with low ai, and twenty elite merchants with high ai. There are also the kings of each kingdom, who can make laws, some that have big effects on gameplay.
There are tons of features intended to make the game feel alive around you, but you only have control of yourself . Every good can be and is made by buildings either you control or the ai (except at world gen). Arbitrage is a real result of supply and demand by NPCs. Every good has some sort of use.
I have found games that have met part of my itch for this game, like mount and blade, but nothing that hits everything I wanted , like a much bigger focus on business and being a merchant and deeper economic and legal systems , so I made this game.
Hello all,
Hope everyone is doing well!
I’m a Software engineer with about 5 years of experience, but I have basically no experience with game development.
Lately, I've been researching how realistic it would be for me to learn game development and build a small multiplayer 3D game.
The scope I have in mind would be something relatively simple (at least I want to believe it is) . A small arena game — imagine a mix between soccer and fighting, where a few players compete in short matches. My idea is simple mechanics and relying on existing assets where possible.
I understand multiplayer adds a lot of complexity, and I also realize that game development involves many skills beyond programming (art, animation, design, etc.), so I’m trying to get a realistic sense of the challenge before diving too deep.
For people who have experience with game dev:
- Do you think this is a realistic solo project, or is multiplayer 3D still too big of a scope for one person new to game dev?
- If you started from a programming background, what were the hardest parts to learn?
- Are there engines, networking frameworks, or learning paths you would recommend?
Any insight is deeply appreciated.
Thanks a lot!
We haven't hired outside marketing for our indie game. We consider our campaign so far to have been a success (64k wishlists on Steam, major press + streamer coverage) but of course the final results won't be in until launch (imminent).
Anyhow I thought the linked post (not promoting anything) might be of interest to other indies so you can see what has worked for us and what we did with the marketing beats broken down. Total timespan of development will be about 18 months, and marketing has been ongoing since about 2 months after the original game concept was agreed.
NornicDB is a Neo4j-compatible graph + vector database with MVCC, auditability-oriented features, hybrid retrieval, and a strong bias toward performance and operational simplicity. It’s the kind of system where correctness, latency, storage behavior, and developer ergonomics all matter at the same time.
I’m not looking for “contributors” in the generic open source sense. I’m looking for people whose engineering habits match the shape of this project.
The people I work best with tend to have a few things in common:
- they use agentic tooling well, but don’t use it as a substitute for taste or rigor
- they like spec-driven development, not just coding until tests pass
- they default to TDD or regression-first work when touching complex systems
- they care about performance, memory behavior, query shapes, and hot paths
- they care about developer experience, naming, docs, tooling, and maintainability
- they can hold correctness and pragmatism in their head at the same time
- they are comfortable working on systems that have database, query engine, protocol, and infrastructure concerns all mixed together
This is not a beginner-friendly maintenance surface. It’s a real database codebase, and a lot of the work sits in the uncomfortable middle where product expectations, compatibility, performance, and internal simplicity all pull in different directions.
The kinds of things maintainers might work on:
- Cypher and Bolt compatibility
- MVCC and transactional behavior
- vector and hybrid retrieval execution paths
- storage engine correctness and performance
- audit/history/retention semantics
- benchmarks, profiling, and allocation reduction
- test infrastructure, spec coverage, and regression prevention
- docs and tooling that improve the contributor experience
I care much more about engineering taste than resume pedigree.
If you’re the kind of person who:
- writes tests for bugs before fixing them
- gets annoyed by hidden allocations and avoidable abstractions
- wants docs and tooling to be part of the product, not an afterthought
- uses modern AI tooling to move faster, but still insists on clear specs and defensible code
- likes the idea of maintaining infrastructure that other serious teams can trust
I’d like to talk.
If that sounds like you, reply here or DM me with:
- a few lines on what kinds of systems work you like
- links to anything you’ve built, maintained, or profiled
- what parts of NornicDB you’d most want to touch
I’m intentionally looking for a small number of strong fits, not a large intake.
This is the weekly thread for Small Projects.
The point of this thread is to have looser posting standards than the main board. As such, projects are pretty much only removed from here by the mods for being completely unrelated to Go. However, Reddit often labels posts full of links as being spam, even when they are perfectly sensible things like links to projects, godocs, and an example. r/golang mods are not the ones removing things from this thread and we will allow them as we see the removals.
Please also avoid posts like "why", "we've got a dozen of those", "that looks like AI slop", etc. This the place to put any project people feel like sharing without worrying about those criteria.
If we develop a banking backend using Golang, does it inherently increase the risk of system hacks or potential money loss compared to other languages?
If not, then why do most large-scale banking architectures still rely heavily on traditional languages like C++ or Java instead of adopting Golang more widely?
I would love to hear everyone’s perspectives and experiences on this topic. Please share your thoughts, insights, or case studies so the community can better understand the strengths and limitations of Golang in critical financial systems.
It allows you to generate fake data matching a given JSON schema.
Go chaff now has significantly improved it's range of schema support over the last few months. (now with support for `not`, `oneOf`, `if/then/else` external `$ref` resolution and cyclic lovecraftian combinator trees. Do your worst... it probably (hopefully) won't break. You can now play with it in the browser! (...on desktop. Sorry mobile users)
Still need to add custom functions for generating higher quality fake data through `x-` keys though that is next on the list!
Library: https://github.com/ryanolee/go-chaff
Hey everyone. I've got a question I haven't been able to find good commentary on - if anyone has recommended reading materials I'm all ears.
I've recently been wanting something close to the concept of a Promise or Future that resolves to a value - what's the best pattern to implement such a feature?
One thing I've come across is the creation of channels, to be used to send a single message, and or zero messages and used for the signal received by closing the channel.
Are channels the right tool for the job when there may be hundreds or thousands of these per second, and how do they compare to waitgroups or other tools for resolving to a value, with the ability to block?
Mochi 0.3 is out. It’s now ready for day-to-day use by mildly technical people who are tolerant of bugs.
Mochi is a federated, multi-user platform for distributed apps such as social media feeds, ticket systems, forums, chat, and games. Anyone can run their own server, and connect with any other user on the Mochi network. Anyone can create and publish apps. The server is written in Go and uses libp2p for inter-server communication, sqlite for storage and Gin for web. App backends are written in Starlark, and app user interfaces are written in any modern web framework such as React.
New apps in 0.3:
Existing app improvements for 0.3:
Server improvements in 0.3:
Documentation, including how to install your own server, is at https://docs.mochi-os.org/ or in the Wikis app. It’s very basic and will improve. Source code for the server and apps is at https://git.mochi-os.org/ or in the Repositories app.
The server is mostly hand-written. The apps are a mixture of hand-written and with the assistance of Claude.
You will find bugs. When you do, please post in the Mochi Development project or Mochi Users forum.