کتابخانه jason و 30 درصد سرعت بیشتر نسبت به Poison

با درود خدمت شما . امروز یک توییتی رو دیدم در مورد انتشار کتابخونه جدید برای الکسیر که هدفش سرعت بیشتر ار پارس کردن json هست .و همینطور گفته از امکانات و راه های خوب Poison هم استفاده کرده.

سازنده
https://twitter.com/michalmuskala

متنی که توییت کرده :

I just released https://hex.pm/packages/jason - a JSON library in pure Elixir focused on speed. It is normally twice as fast as Poison and when compiled with HiPE even 30% faster than jiffy (which is implemented largely in C). #myelixirstatus

و همینطور بحث های زیادی در مورد برخی از نیازمندی های برنامه نویسان به خاصیت های جی سان هم شکل گرفته که به نظرم قسمت نظرات این توییت را بخوانید می تونه جالب باشه

لینک پکیج :

لینک گیت هاب :

با تشکر

3 پسندیده

دوستان کسی با این کتابخونه کار کرده ؟
من از داکیمنت ایناش متوجه شدم بیشتر برای خود فونیکس درست شده یعنی مواردی که توی هسته هست و اینکه تو مقاله زیر هم دیدم می خواد توی نسخه جدید استفاده بشه

ولی من هرچی گشتم مثل پویزن ببنیم داکیومنتش کجاس قطعه کد زیر رو با این کتابخونه جدید بنویسیم چیزی پیدا نکردم

مثلا این کد رو من با پویزن نوشتم

def upload_drive_less_five(file, token) do
	    code = "Bearer #{token}"
	    HTTPoison.post!(
	    	"https://www.googleapis.com/upload/drive/v3/files?uploadType=media", # url
	    	{:file, file},  # body
	    	[{"Authorization", code}],  # headers
	    	[timeout: 50_000, recv_timeout: 50_000] # options
	    ).body
	    |> IO.inspect
  	end

یا مثلا قطعه کدی که من با پویزن نوشتم

def refresh_token (email) do
		refresh_token = HTTPoison.post!(
      	"https://www.googleapis.com/oauth2/v4/token", # url
	    {:form, # body
	      [
	        {"client_id", "#{System.get_env("GOOGLE_CLIENT_ID")}"} ,
	        {"client_secret", "#{System.get_env("GOOGLE_CLIENT_SECRET")}"} ,
	        {"refresh_token", "#{get_pass_refresh_token(email)}"},
	        {"grant_type", "refresh_token"}
	      ]
	    },
	    [{"Content-Type", "application/x-www-form-urlencoded"}] # headers
	    ).body
	    |> Poison.decode

	    {:ok, %{"access_token" => a_token}} = refresh_token

	    update_token_after_refresh_token(email, a_token)
	end

من یک اشتباه کوچیک کردم متاسفانه من http پویزن رو اشتباه گرفتم با خود رندر کننده json به وسیله پویزن