Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
@SOF3
SOF3
Follow
View SOF3's full-sized avatar

Jonathan Chan Kwan Yin SOF3

a.k.a. SOFe,@chankyin. Infrastructure developer. I Go during the day and Rust at night.My code on GitHub are not affiliated with my company unless specified.

Organizations

@LegendOfMCPE@BlockServerProject@LegionPE@pmt-mcpe-me@Project-Nyx@poggit@pmmp@PMPluginDevelopers@dihydrogen-monoxide@poggit-orphanage@BlockHorizons@m2robocon@pmmp-repo@eviov@traffloat@kubewharf

Block or report SOF3

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more aboutblocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more aboutreporting abuse.

Report abuse
SOF3/README.md
  • Rust: Almost all my serious personal projects are written in Rust.
  • Type-driven: I adopt type-driven development.I tend to express most code concepts with the type system.For example, I use newtype pattern extensively for basic numeric types,and assertions about types are expressed in wrapper types.
  • Plaintext only: I avoid working with files that cannot be managed by Git.This means I avoid committing images(unless they won't be modified or in SVG) into a repo,and I don't like producing multimedia.
    • For documents, I use Markdown and LaTeX and generate the PDF on CI.
    • For graphs, I use GraphViz and compile the image on CI.
  • Vim: My primary IDE is NeoVim + coc.nvim.On mobile, I develop with Vim over SSH.My setup is updatedhere.
  • Linux: My personal computer runs on Ubuntu.I use Bash as the default shell.My setup ishere.
  • Other preferences:
    • Scripting languages: Bash, Python and NodeJS.
    • JVM language: Kotlin.
    • Deployment: Docker on Alpine Linux image.

Personal blog

I have started jotting down some weird opinions from mein thewiki of this personal repo.

Highlighted projects

I have started a lot of open-source projects for personal interest,but many are incomplete because of lack of time and financial support.Incomplete projects are marked as ⏳.

Some of these projects were not created or maintained by me,but I included them here as I have contributed a substantial amount of code to them.

General-purpose libraries

  • await-generator, a PHP library that enables async/await pattern
  • portrait, a Rust proc-macro framework to write trait-aware proc-macro attributes such as impl-by-delegation.
  • dirmod, a Rust macro to smartly detect modules to include
  • rwlock-promise, a JavaScript library that implements mutually-exclusive and shared-exclusive locks with a Promise API
  • thisrc, a PHP extension that observes the refcount of the$this object without inducing side effects
  • xylem, a Rust framework for statetul type conversion (a post-deserialize processing stage).

I have also created numerous tiny macros and libraries in Rust,but those generally have very ad-hoc purposesand are not known to have any other users.Examples includeserde-iter,count-write,xias,qualify-derive, etc.

Programming language analysis

  • enclavlow, my final year project that performs Java flow analysis to verify SGX data security.

Cloud native

  • Kelemetry, an observability tool to provide global control plane tracing for Kubernetes.
  • KubeAdmiral, a multi-cluster orchestrator and scheduler for Kubernetes.
  • KubeZoo, a lightweight multi-tenancy solution for Kubernetes.

Game development

  • PocketMine-MP, a reverse-engineered Minecraft server software.
    • PocketMine-MP has a huge ecosystem of plugins, and most of my work in earlier years were related to developing tools and cohesion of the ecosystem,such as dependency management, build tools and common-dependency APIs.
    • PocketMine-MP is an ancient project started in 2012. Some of my contributions include introducing modern tools and paradigms to the project.
    • libglocal-idea-plugin, an intellij plugin for editinglibglocal language files
  • Traffloat, a 3D web game written in Rust.
  • dynec, an ECS library that focuses on type safety and optimized for specific scenarios.

Systems programming

  • include-flate, a Rust macro for attaching constants as deflated strings in the executable.
  • phar.rs, a Rust library for the PHAR (PHp ARchive) format. Also includes a WASM app and a CLI command for phar manipulation.
  • signed-vimrc, a vim plugin that loads PGP-signed .vimrc files in cwd
  • pathetique, an object-oriented abstraction of OS paths in PHP

Robotics

I was a member of theHKU Robocon Team.

Web development

  • octorest, generated Rust bindings for the GitHub API (can adapt to other OpenAPI implementations too)
  • webcord, a webapp + discord bot that mirrors a discord chat

Android development

Discord bots

The Discord bots I write follow minimalistic approachand rarely have sophisticated framework.

  • bthint, a bot that tries to extract syntactically correct code from chat messages
  • boredphoton, a minimalistic bot for alerting spam raids
  • orbs.bot, a fan project that reverse engineers the API of the webgame orbs.it and mirrors live games
  • blob-mirror, a bot mirroring GitHub markdown files to Discord.
  • webcord, a webapp + discord bot that mirrors a discord chat

Other accounts

PinnedLoading

  1. pmmp/PocketMine-MPpmmp/PocketMine-MPPublic

    Custom server software for Minecraft: Bedrock, built from scratch in PHP, C and C++

    PHP 3.3k 1.6k

  2. await-generatorawait-generatorPublic

    Write code in async/await style in PHP using generators.

    PHP 123 16

  3. kubewharf/kelemetrykubewharf/kelemetryPublic

    Global control plane tracing for Kubernetes

    Go 263 29

  4. include-flateinclude-flatePublic

    A variant of include_bytes!/include_str! with compile-time deflation and runtime lazy inflation

    Rust 137 7

  5. portraitportraitPublic

    Trait-agnostic derive macros

    Rust 27 1

  6. dynecdynecPublic

    An opinionated ECS-like framework

    Rust 12


[8]ページ先頭

©2009-2025 Movatter.jp