Skip to content

Commit ab8eecc

Browse files
authored
N15: gbemu, shared-arena, density-mesh, fastnbt, mcproto (rust-gamedev#360)
* N15: gbemu * N15: shared-arena * N15: density-mesh * N15: fastnbt & mcproto
1 parent b47e968 commit ab8eecc

File tree

5 files changed

+106
-0
lines changed

5 files changed

+106
-0
lines changed
51.1 KB
Loading
2.2 MB
Loading
149 KB
Loading

content/posts/newsletter-015/index.md

+106
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,26 @@ or follow [@sajattack] on Twitter.
697697
[Discord]: https://discord.gg/tvGzD4GqvF
698698
[@sajattack]: https://twitter.com/sajattack
699699

700+
### [gbemu]
701+
702+
![screenshot](gbemu.png)
703+
704+
[gbemu] by [@BlueBlazin] is a Gameboy/Gameboy Color Emulator which
705+
[runs in the browser][gbemu-web].
706+
707+
> ... I wrote the emu just for myself as a learning experience.
708+
> So it's lacking in a lot of features you'd expect from one made
709+
> for others to use, and it's also not mobile friendly unfortunately
710+
> (but I'll work on that soon).
711+
> Still, it may be of some interest to someone here :D
712+
713+
_Discussions:
714+
[/r/rust](https://reddit.com/r/rust/comments/j8vw84/i_made_a_gameboygameboy_color_emulator)_
715+
716+
[gbemu]: https://github.com/BlueBlazin/gbemu
717+
[gbemu-web]: https://gbemu.netlify.app
718+
[@BlueBlazin]: https://github.com/BlueBlazin
719+
700720
### [skyline-rs]
701721

702722
![SSB & Rust logos](smash_x_rust.png)
@@ -724,6 +744,27 @@ It also features updates regarding:
724744
[bntx]: https://github.com/jam1garner/bntx
725745
[nutexb]: https://github.com/jam1garner/nutexb
726746

747+
### [shared-arena]
748+
749+
[shared-arena] by [@0x5eb] is a thread-safe & efficient memory pool.
750+
Memory pools are usefull for speeding up dynamic (de)allocation
751+
of large amounts of data of the same size.
752+
753+
shared-arena provides three memory pools with different trade-offs:
754+
755+
![SharedArena, Arena, Pool](shared-arena.png)
756+
757+
The crate uses unsafe in a few places,
758+
but the code is covered by the miri interpreter, valgrind and 3 sanitizers
759+
(address, leak and memory) [on each commit][shared-arena-ga].
760+
761+
_Discussions:
762+
[/r/rust](https://reddit.com/r/rust/comments/jddens/announcing_shared_arena)_
763+
764+
[shared-arena]: https://github.com/sebastiencs/shared-arena
765+
[shared-arena-ga]: https://github.com/sebastiencs/shared-arena/blob/master/.github/workflows
766+
[@0x5eb]: https://twitter.com/0x5eb
767+
727768
### [glam] v0.10.0
728769

729770
[glam] is a simple and fast linear algebra crate for games and graphics.
@@ -764,6 +805,29 @@ For a full list of changes see the [glam changelog].
764805
[bytemuck]: https://docs.rs/bytemuck
765806
[glam changelog]: https://github.com/bitshifter/glam-rs/blob/master/CHANGELOG.md
766807

808+
### [density-mesh]
809+
810+
![output example](density-mesh.png)
811+
812+
[density-mesh] by [@PsichiX] is an image density/height map to mesh generator.
813+
It consists of two crates:
814+
815+
- density-mesh-core - generates mesh from density map.
816+
- density-mesh-image - generates density map from image.
817+
818+
Typical use case would be to use two of them to create mesh from images
819+
but in case you have your own image handler, you can stick to the core module
820+
and produce density maps by yourself.
821+
822+
There's also a [CLI tool][density-mesh-cli].
823+
824+
_Discussions:
825+
[/r/rust](https://reddit.com/r/rust/comments/j73ijj/densitymesh_image_to_2d_mesh_converter)_
826+
827+
[density-mesh]: https://github.com/PsichiX/density-mesh
828+
[density-mesh-cli]: https://github.com/PsichiX/density-mesh#cli
829+
[@PsichiX]: https://github.com/PsichiX
830+
767831
### [Rapier]
768832

769833
[![Rapier logo](rapier-logo.svg)][Rapier]
@@ -1125,6 +1189,48 @@ Contributions and feedback are always welcome.
11251189
[Rapier]: https://rapier.rs
11261190
[Wgpu]: https://wgpu.rs
11271191

1192+
### [fastnbt & fastanvil][fastnbt]
1193+
1194+
![output example](fastnbt.png)
1195+
1196+
[fastnbt] by [@owengage] is a fast parsing library
1197+
for Minecraft's NBT and Anvil formats.
1198+
1199+
The project consists of several crates:
1200+
1201+
- fastnbt - fast deserializer and parser for Minecraft: Java Edition's
1202+
NBT data format.
1203+
- fastanvil - for rendering Minecraft worlds to maps.
1204+
- fastnbt-tools - various tools for NBT/Anvil, notably a map renderer.
1205+
- anvil-wasm - an entirely in-the-browser map renderer.
1206+
Demo at [owengage.com/anvil][anvil].
1207+
1208+
The project supports only the latest version of Minecraft (1.16 at the moment).
1209+
1210+
_Discussions:
1211+
[/r/rust](https://reddit.com/r/rust/comments/jj6k9b/any_minecraft_fans)_
1212+
1213+
[fastnbt]: https://github.com/owengage/fastnbt
1214+
[@owengage]: https://github.com/owengage
1215+
[anvil]: https://owengage.com/anvil
1216+
1217+
### mcproto
1218+
1219+
mcproto by [@Twister915] is an implementation of the Minecraft multiplayer
1220+
network protocol in Rust. It consists of three crates:
1221+
1222+
- [mcproto-rs] - the protocol itself,
1223+
- [mctokio] - tokio I/O stuff,
1224+
- [rustcord] - a layer 7 server-switching proxy implementation (WIP).
1225+
1226+
_Discussions:
1227+
[/r/rust](https://reddit.com/r/rust/comments/jcbawo/the_entire_minecraft_protocol_in_rust)_
1228+
1229+
[mcproto-rs]: https://github.com/Twister915/mcproto-rs
1230+
[mctokio]: https://github.com/Twister915/mctokio
1231+
[rustcord]: https://github.com/Twister915/rustcord
1232+
[@Twister915]: https://github.com/Twister915
1233+
11281234
### Ajour - World of Warcraft Addon Manager
11291235

11301236
[![Ajour Banner](ajour-banner.jpg)][Ajour]
63.7 KB
Loading

0 commit comments

Comments
 (0)