Skip to content

AsmEventBus is an implementation of event system with asm. (twaddle...)

License

Notifications You must be signed in to change notification settings

szszss/AsmEventBus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AsmEventBus

AsmEventBus is an implementation of event system with asm. It is faster and more powerful {citation needed} than the EventBus of Google Guava.

Build Status of Develop Branch

What is ASM

ASM is a java library, which provides real-time bytecode modifying and generating. Its name is referred to inline assembler, although I consider it Aya Shameimaru's Miniskirt...

AsmEventBus was powered by ASM. Now it can run without ASM, since it can generate bytecode by itself. However, it keeps the old name to have respect for one of the greatest project in Java.

Why ASM

Well... We know that Guava EventBus uses "reflect" to invoke event listeners, right? And we also know reflect is slow (JIT optimizing? Do you wanna leave your destiny to laputan machines?). AsmEventBus will dynamically generate invoker class, to invoke event listeners by method calling, which is faster than reflect.

                          _」Lユニ=-=ニユZ」_
                      __≫''´ニニニニニニニニ``' 、
                   __ア゙ニニニニニニニニ=-‐ … ‐- ヽ
                    アニニニニニ=‐''^^    _,,.   ‐=='ニ二ニ==‐-  .,,_
                 /ニニア^マ"´    ,..。s≦ニニニニニニニニ=-‐ ''^^三 ノ
                   ニニア゙   } .。s≦ニニニニニ=‐     `'≪,三三三ニ=‐
             ____  j{ニ7  ..<ニニニニニ=‐           `寸ニ=‐
            (    `{⌒*'”ニニニニ=‐         `' 、        マ
             \  -=ニニニ=‐      {           \      ∨
              /ニニ=‐  /  .:}   :{       }i    ヽ      }
              /ニ=‐    ./    ノ  :{       }ト、        ノ
              /ニニア  /   / 乂ー '^   人        从 ヽ    :i  /
            /ニニア゙  /   ′      ≧=-斗午㍉、       ァ示㍉    人 (
        /ニニニア゙  .′          {i:{ ノ爪   )   イ,ノハ   }⌒{`' 、}
        (=ニニア゙        i{    {i:{乂 ッ  '゙´   ゞ   ノ  }  i
           ¨¨ / ,:゙ {   i{   从 乂       ,  ー=彡   }  |
       '゙{ .′/  i{   i{   ^沁、  ¨´ノ          从    ノ 人 
       { 乂 ′   从   .i{      }今=-く   ♉  '  .仏ィ^/
        乂        ,沁、  乂     }  i{≧ァ- -=セ升      {(
        `¨i{      ⌒令=- ``  ,ノ   从/    (人     :{i
            从.       从   ー=彡    仏^\    }、 }^\  :{i  
            会=- -=彡令s。       人ー‐匕_rzzミ、丶  ノ^ヽ}   `    ASM♂EVENT♂BUS
                 {_{⌒ニ=- ` _,ノア゙⌒`'寸、)、       A library PM will loving delete.
                 }_}     j 7^    ー '^' 、        Again and again.
                 {_{      }_}        ヽ
                 }_}    {_{          。 ,,jI斗-- ミ
                   乂h、     .}_}        i.   }iア゙     `寸
                  心、h、  ノリ{          |     7    __,ァ'Ⅶ         ∮
                 ,&゚⌒,心、彡'゙^{           |      {     , ア^ }i         φ  
                    ,?    沁   {       :|       叭        从         ∂
                  ψ       `沁  }      i{      沁、 ∮   ,.仆       ,?
                 #        小  }      i{     i{令 &,==七I゛      ,g'゚
              ∮       }ノ r'゙jI斗-- ミ .从   ノ^' 、 ‰。    ,.c?゚⌒
                 ?        { ≫''゛      ` 沁,     \ ⌒゚''∞''゚⌒_
              ゚&      ≫''゛  -‐=‐-ミ    沁,     i}   ´    `Y
    jI斗 ===‐- ミ   ?。 ア゙       '゙⌒^  ``' 、 ⌒i}     ノ、,ノ          i
 __ア´          ``'<_ア゙                  〈   //          ノ
. ア゙                    ′                   V //         i{

Where to download

You can download the binary library from its CI.

https://ci.hakugyokurou.net/job/AsmEventBus/ws/AEB/build/libs/

Sorry but I haven't configure complete... I'm too busy in these days...

            ,.,.- -‐─- 、.,_
         ,. '´          `' 、
       ., '       ,       ヽ、
       /    . '´  / l    ハ 、 ハ`フ       
      ,'   ,'   ,' /__'、   |/_|_ ハ 'r'   
      l   / ,  .|/__」/_、 | _」/! }  }
      | ∠.イ|  「 l)l::}` \|´l:l!}|/ 八
      ',   八  'ひ-'     `"oイ ̄`
       ',  /  l 、._,ゞ"      "}リ          ASM♂EVENT♂BUS
       }     |  ト 、   ´   ,.イ!          A QC's doomday.
       ノ    八 ', }  ーrァ升| |    They'll work overtime every day. 
   ト-‐''´    ,:' ,ハ ∨\ _ハ ヽ! |
   `>'´   //´ヽレ'、|`}_アrr'7ハ |
  /    , '  '   ∨   ○ ∨!八
 ,: '    /    {    、  △ } |   ',
 {     ;    ∧    ヽ  × | |   ,.
  、    、   ;  ',     \.八 '、!  }
  \    \ , く \   /`7ヽYヽ  ;
    )  ノ, /  `ア`' 、/ /__八,ハ}、/
   (r'´ (, '     ./    ` ´ ヽ  ̄ ヽ
    `   {     ;         ',    ハ
      ,-{ ` 、.,_、        ,     }
    / ,r>、.,__ 、>-‐- 、.ノ  ノ    rノ、
     {_く_r、_,,.. -、_,.. -、_>イ__.>-く__r'
     

How to use

        / /  / _,,..  -――‐‐-  ..,,_   \  `ミー-彳
       / /  / ∠  -―――――― - ミ    \     <´
     / /  .:' ィ´                 `Y⌒`'ー-ミ  ヽ               ASM♂EVENT♂BUS
 ___/   /   /   : :/   /        \     {      }ー-ミ.:i :小     Smaller than smaller
 \    /  : /    : :/   / :/      : ヽ   八     /    : :ト、l i
    ー-イ  : / /   : /. :,′: !       :  |     \__ .イ   . : :| :!廴_
      | : ,′    |  : :|  |    : |  :  |   :| : '; }  / :イ八 `丶、
      | : |: |  : | : /|  :/|    : |  l  |   │:| : :| |: /: /:| : :.\ \
      | : |: |   /ト、/__| / :| ,  : : | :j ,'|  j:│: :| . |: : /: :| :ノ: > i
      八: :|: |  | : |j≧=-|丁 「   : /| :、|:/ | _/ ∧ イ: :  : : : : : //  :/ |
    / . : : |/|  | : |{{¨マ{六卞ミ   : :|│:厶ニ|:/|/二V| :j   . :ハ: / // /    !
  <:_ : イ|: | 小八` 弋..::ソ \ : | ∨"行六 卞癶| :/ . : / }// :八    |
        } | : :|: \' `ー‐   \{   弋..::::ン   '|/ . : / /7: /イ: : :\|
        |从 : | 八\    ,      ` ー‐  / : : :/イ/: :{ : : \: :.`'ー.}
     、__ノ ∧ Ⅵ: :丶      `          厶イ: :∧.八: : :`丶、: :、_彡'′リ
        \ー: :人:八: : :|\    -、           /′ / ̄} ̄ ̄ ̄入\リ   /
           ̄   〉ハ : | /丶、         イ /: :/\_    〉∧_ \ /
          __/ ヽ∧ ∨  / > _....、-‐ ´  ∨/    \>、/  ∧ ア ̄ ̄\
       / /   /\{ │ /   :/  \    /       / /     V  〉    \
      「  /    /'     | ,′  {-ミ             /      八 /
      | 人    |'      l/    \ Y⌒ - 、     /         /r┘

About

AsmEventBus is an implementation of event system with asm. (twaddle...)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published