Node.js เป็นซอฟต์แวร์โอเพ่นซอร์สและซอฟต์แวร์ฟรีที่สนับสนุนโปรแกรมสร้างเว็บอย่างสมบูรณ์เพื่อสร้างโปรแกรมเครือข่ายที่ยืดหยุ่นและปรับขนาดได้ การใช้งาน JavaScript runtime ของ Chrome ทำให้ซอฟต์แวร์ Node.js มีประสิทธิภาพและมีน้ำหนักเบาโดยเฉพาะอย่างยิ่งเนื่องจากใช้รูปแบบ I / O ที่ไม่มีการบล็อก
แพลตฟอร์มชั้นนำสำหรับการเรียกใช้โค้ด JavaScript ฝั่งเซิร์ฟเวอร์
ปัจจุบัน Node.js ถือว่าเป็นแพลตฟอร์มชั้นนำสำหรับการเรียกใช้โค้ด JavaScript ฝั่งเซิร์ฟเวอร์ซึ่งใช้ในการผลิตใน บริษัท ขนาดใหญ่อย่าง Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 และอื่น ๆ อีกมากมาย
ตัวอย่างบังคับ
โค้ดต่อไปนี้จะสร้างเว็บเซิร์ฟเวอร์แบบเรียบง่ายที่ตอบสนอง "Hello World" สำหรับทุกคำขอ
var http = require ('http');
http.createServer (ฟังก์ชัน (req, res) {
res.writeHead (200, {'Content-Type': 'text / plain'});
res.end ('Hello Worldn');
}) ฟัง (1337, '127.0.0.1');
console.log ('เซิร์ฟเวอร์ทำงานที่ http://127.0.0.1:1337/');
ในการเรียกใช้เซิร์ฟเวอร์ HTTP คุณจะต้องใส่โค้ดด้านบนลงในไฟล์ที่เรียกว่า & ldquo; example.js & rdquo; (ไม่มีเครื่องหมายคำพูด) และรันคำสั่ง node จากโปรแกรมจำลองเทอร์มินัล:
% node example.js
เซิร์ฟเวอร์ทำงานที่ http://127.0.0.1:1337/
ระบบปฏิบัติการที่สนับสนุน
Node.js เป็นแอ็พพลิเคชันหลายแพลตฟอร์มที่ได้รับการทดสอบเรียบร้อยแล้วภายใต้การแจกแจง GNU / Linux จำนวนมากรวมถึง Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware และอื่น ๆ ด้วย เช่นเดียวกับในเชิงพาณิชย์ของ Mac OS X และ Microsoft Windows ระบบปฏิบัติการ ได้รับการสนับสนุนสถาปัตยกรรมชุดคำสั่งทั้ง 64 บิตและ 32 บิตในขณะนี้
ภายใต้ประทุนข้อกำหนดและความพร้อมใช้งาน
ดังที่ได้กล่าวมาแล้วนี่เป็นซอฟต์แวร์หลายแพลตฟอร์ม สามารถดาวน์โหลดเป็นโปรแกรมติดตั้งที่สร้างไว้ล่วงหน้าสำหรับระบบปฏิบัติการ Mac OS X, GNU / Linux และ Microsoft Windows รวมถึงที่เก็บข้อมูลต้นฉบับที่สามารถรวบรวมและติดตั้งได้ในระบบปฏิบัติการใด ๆ ที่รองรับ Python
มีอะไรใหม่ ในรุ่นนี้:
- คอนโซล:
- ใช้คอนโซล console.timeLog () แล้ว # 21312
- deps:
- อัปเกรดเป็น libuv 1.22.0 # 21731
- อัปเกรดเป็น ICU 62.1 (Unicode 11, CLDR 33.1) # 21728
- http:
- เพิ่มการสนับสนุนสำหรับการส่งผ่านทั้งหมดเวลาและตัวเลือกตัวแทนไปยัง http.request # 21204
- ตรวจสอบ:
- เปิดคอนโซล API แบบเดิมในต้อง ('inspector') คอนโซล # 21659
- Napi:
- เพิ่มการสนับสนุนทดลองสำหรับฟังก์ชันที่เกี่ยวกับตัวเลขบิ๊กเท็กซ์ # 21226
- กระบวนการ:
- ใช้วิธีการ process.hrtime.bigint () แล้ว # 21256
- เพิ่มอาร์กิวเมนต์บรรทัดคำสั่ง title เพื่อตั้งชื่อกระบวนการเมื่อเริ่มต้น # 21477
- trace_events:
- เพิ่มข้อมูลเมตา process_name # 21477
- เพิ่มผู้ทำงานร่วมกันใหม่
- codebytere - Shelley Vohr
- การสนับสนุน N-API
- เริ่มต้นด้วยการดีบัก Time-Travel ได้ง่ายๆผ่านทางส่วนขยายรหัส Visual Studio ใหม่
- การสนับสนุน TTD สำหรับเครื่องกำเนิดไฟฟ้าและฟังก์ชัน async
- สนับสนุนโปรโตคอล Inspector
- เพิ่มเสถียรภาพและการปรับปรุงสารพันอื่น ๆ
- async_hooks:
- เพิ่มเหตุการณ์การติดตามไปยัง async_hooks (Andreas Madsen) # 15538
- เพิ่มประเภทผู้ให้บริการสำหรับเซิร์ฟเวอร์เน็ต (Andreas Madsen) # 17157
- คอนโซล:
- console.debug สามารถใช้งานได้ภายนอกของผู้ตรวจสอบ (Benjamin Zaslavsky) # 17033
- deps:
- อัปเกรด libuv เป็น 1.18.0 (cjihrig) # 17282
- แก้ไข V8 เป็น 6.2.414.46 (Myles Borins) # 17206
- โมดูล:
- module.builtinModules จะแสดงรายการโมดูลที่สร้างขึ้น (Jon Moss) # 16386
- n-API:
- เพิ่มผู้ช่วยสำหรับ addons เพื่อรับลูปเหตุการณ์ (Anna Henningsen) # 17109
- กระบวนการ:
- process.setUncaughtExceptionCaptureCallback ขณะนี้คุณสามารถใช้เพื่อปรับแต่งลักษณะการทำงานสำหรับข้อยกเว้นของ "beort-on-uncaught-exception" (Anna Henningsen) # 17159
- ขณะนี้ตัวจัดการสัญญาณสามารถรับรหัสสัญญาณที่เรียกใช้ตัวจัดการได้ (Robert Rossmann) # 15606
- src:
- ตัวฝังสามารถใช้โหนด :: CreatePlatform เพื่อสร้างอินสแตนซ์ของ NodePlatform (Cheng Zhao) # 16981
- สตรีม:
- writable.writableHighWaterMark และ readable.readableHighWaterMark จะส่งคืนค่าที่สตรีมเนื้อหาถูกสร้างขึ้นด้วย (Calvin Metcalf) # 12860
- เพิ่มผู้ทำงานร่วมกันใหม่
- maclover7 Jon Moss
- Guybedford Guy Bedford
- hashseed Yang Guo
- crypto:
- สนับสนุนการสร้างด้วยทั้ง 1.1.0 และ 1.0.2 (David Benjamin) # 16130
- FS:
- fs.realpathSync.native และ fs.realpath.native ถูกเปิดเผย (Ben Noordhuis) # 15776
- กระบวนการ:
- เปิดโปง process.ppid (cjihrig) # 16839
- สร้าง:
- ภาพขนาดย่อถูกเปิดใช้งานใน V8 # 14875 แล้ว
- คอนโซล:
- ใช้กลุ่มคอนโซลที่น้อยที่สุด () # 14910
- deps:
- อัพเกรด libuv เป็น 1.14.1 # 14866
- อัปเดตแวดวงถึง v1.25.0 # 14955
- DNS:
- เพิ่มตัวเลือกคำต่อท้าย dns.lookup () เมื่อเป็นจริงผลลัพธ์จากตัวแก้ปัญหา DNS จะถูกส่งผ่านโดยไม่มีการสับเปลี่ยนที่ Node.js ทำให้ไม่สามารถกำหนดที่อยู่ IPv4 ก่อนที่อยู่ IPv6 ได้ # 14731
- FS:
- เพิ่ม fs.copyFile และ fs.copyFileSync ซึ่งช่วยให้สามารถคัดลอกไฟล์ได้มีประสิทธิภาพมากขึ้น # 15034
- ตรวจสอบ:
- เปิดใช้งานร่องสแต็ก Async # 13870
- โมดูล:
- เพิ่มการสนับสนุน ESM ปัจจุบันนี้อยู่เบื้องหลัง --experimental-modules flag และต้องการนามสกุล. mjs โหนด --experimental-modules index.mjs # 14369
- Napi:
- ใช้คำมั่นสัญญา # 14365
- OS:
- เพิ่มการสนับสนุนสัญกรณ์ CIDR ไปยังผลลัพธ์ของเมธอด networkInterfaces () # 14307
- perf_hooks:
- การใช้งาน API การกำหนดเวลาประสิทธิภาพขั้นต้นสำหรับ Node.js นี่เป็น API Timing การปฏิบัติงานเดียวกันที่ใช้โดยเบราว์เซอร์รุ่นใหม่ที่มีคุณสมบัติเฉพาะของ Node.js ดำเนินการ API ผู้ใช้ Timing mark () และ measure () # 14680
- TLS:
- หลาย PFX ใน createSecureContext # 14793
- เพิ่มผู้ทำงานร่วมกันใหม่:
- BridgeAR - Ruben Bridgewater
- เครื่องมือ V8 ได้รับการอัปเกรดเป็นเวอร์ชัน 6.0 ซึ่งมีโปรไฟล์ประสิทธิภาพที่เปลี่ยนแปลงอย่างมาก
- การเปลี่ยนแปลงที่น่าทึ่งอื่น ๆ :
- DNS:
- อินสแตนซ์ตัวแก้ไขปัญหา DNS ที่เป็นอิสระได้รับการสนับสนุนในขณะนี้โดยมีการสนับสนุนสำหรับการยกเลิกคำขอที่เกี่ยวข้อง
- N-API:
- มีการเปลี่ยนแปลงฟังก์ชัน N-API หลายรายการสำหรับการจัดการข้อผิดพลาดเพื่อสนับสนุนการกำหนดรหัสข้อผิดพลาด
- REPL:
- การสนับสนุนการเติมข้อความอัตโนมัติสำหรับ require () ได้รับการปรับปรุงแล้ว
- สาธารณูปโภค:
- ได้มีการใช้ WHATWG Encoding Standard (TextDecoder และ TextEncoder) เป็นคุณลักษณะทดลองแล้ว
- สตรีมสองการถดถอยที่มีโมดูลสตรีมได้รับการแก้ไขแล้ว:
- เหตุการณ์เสร็จสิ้นจะถูกส่งออกหลังจากเหตุการณ์ข้อผิดพลาดหากมีการส่ง: [0a9e96e86c] # 13850
- ในโหมดอ็อบเจ็กต์สตรีมที่สามารถอ่านได้จะสามารถใช้งานไม่ได้อีก [584013870] # 13760
- แก้ไขคุณสมบัติที่ทำให้กระบวนการเสียได้ใน 8.1.1 ทำให้ไม่สามารถคอมไพล์โปรแกรมเสริมพื้นเมืองบนแพลตฟอร์มอื่นนอกเหนือจาก Windows ได้ นี่คือการแก้ไขในกระบวนการสร้าง Node.js ดังนั้นจึงไม่ต้องมีการยืนยันรหัสเพิ่มเติมที่ด้านบนของ 8.1.1
- [c8e34b61f6] - build: เพิ่มไฟล์ส่วนหัว src / tracing ที่หายไป (Daniel Bevenius) # 10851
- [96f55f9e59] - src: move_event.h รวมถึงส่วนหัวภายใน (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: แก้ไขการล้างข้อมูล TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: เริ่มต้นตัวควบคุมการสืบค้นกลับในเอเจนต์ทุกครั้ง (Matt Loring) # 10507
- [54e55e05ca] - การทดสอบ: ทำให้การทดสอบ -locl-no-icu-data มีประสิทธิภาพมากขึ้น (Michael Zasso) # 10992
- [7b253eb3ed] - test: เพิ่มความเข้มงวดในการทดสอบการสืบค้นกลับ (Rich Trott) # 11065
- [3dc4a5f1f4] - การสืบค้นกลับ: แก้ไข - คำเตือนเขตข้อมูลที่ไม่ได้ใช้งาน (Santiago Gimeno) # 10416
- [8a918bf411] - การสืบค้นกลับ: แก้ไข - คำเตือนเกี่ยวกับสภาพแวดล้อม (Santiago Gimeno) # 10416
- บัฟเฟอร์:
- ปรับปรุงประสิทธิภาพการจัดสรร Buffer โดย ~ 11% (Brian White) # 10443
- ปรับปรุงประสิทธิภาพของ Buffer.from () โดย ~ 50% (Brian White) # 10443
- เหตุการณ์: ปรับปรุงประสิทธิภาพของ EventEmitter.once () ประมาณ ~ 27% (Brian White) # 10445
- fs: อนุญาตให้ผ่าน Uint8Array ไปยัง fs เมธอดที่ Buffers ได้รับการสนับสนุน (Anna Henningsen) # 10382
- http: ปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์ http ราว 7% (Brian White) # 6533
- npm: อัปเกรดเป็น v4.0.5 (Kat Marchan) # 10330
- บัฟเฟอร์:
- ย้อนกลับการเลิกใช้งานการเรียก Buffer () โดยไม่ใช้สายงานใหม่ (Anna Henningsen) # 9529
- แก้ไขบัฟเฟอร์ buffer.transcode () สำหรับการเข้ารหัสอักขระแบบไบต์เดียวกับ UCS2 (Anna Henningsen) # 9838
- สัญญา: - คำเตือน - ตอนนี้จะสร้าง stacktraces ที่มีประโยชน์สำหรับคำเตือน Promise (Anna Henningsen) # 9525
- repl: แก้ไขข้อผิดพลาดในการป้องกันไม่ให้การทำงานของเครื่องกำเนิดไฟฟ้าถูกต้อง (Teddy Katz) # 9852
- V8: แก้ไขการถดถอยประสิทธิภาพที่สำคัญของ instanceof (Franziska Hinkelmann) # 9730
- crypto: วิธีการถอดรหัส setAuthTag () และ setAAD จะส่งคืนข้อมูลนี้
- dns: ใช้งาน {ttl: true} สำหรับ resolve4 () และ resolve6 ()
- libuv: อัปเกรดเป็น v1.10.1
- แก้ไขบัฟเฟอร์ที่อาจล้นเมื่อเขียนข้อมูลไปยังคอนโซลใน Windows 10. (CVE-2016-9551)
- process: เพิ่มคุณสมบัติภายนอกใหม่ลงในข้อมูลที่ส่งกลับโดย memoryUsage ()
- tls: แก้ไขการรั่วไหลของหน่วยความจำเมื่อการเขียนถูกจัดคิวในการเชื่อมต่อ TLS ที่ถูกทำลายระหว่างการจับมือกัน
- V8 (dep): อัปเกรดเป็น v5.4.500.43
- v8: ข้อมูลที่ส่งกลับโดย getHeapStatistics () ขณะนี้มีฟิลด์ใหม่สามฟิลด์ ได้แก่ malloced_memory, peak_malloced_memory และ does_zap_garbage
- build: สัญลักษณ์ zlib และสัญลักษณ์ OpenSSL เพิ่มเติมจะถูกเปิดเผยบนแพลตฟอร์ม Windows แล้ว (Alex Hultman) # 7983 และ # 7576
- child_process, cluster: กระบวนการย่อยของเด็กและผู้ใช้คลัสเตอร์ในขณะนี้สนับสนุนการกำหนดค่า stdio (โคลิน Ihrig) # 7811 และ # 7838
- child_process: argv [0] ขณะนี้คุณสามารถตั้งค่าเป็น arbitrary ในกระบวนการที่เกิดขึ้นได้ (Pat Pannuto) # 7696
- fs: fs.ReadStream จะเปิดเผยจำนวนไบต์ที่ได้อ่านไปแล้ว (Linus Unneback) # 7942
- repl: REPL สนับสนุนโหมดแก้ไขแล้ว (Prince J Wesley) # 7275
- util: inspect () สามารถกำหนดค่าได้ทั่วโลกโดยใช้ util.inspect.defaultOptions (Roman Reiss) # 8013
- บัฟเฟอร์: เพิ่ม buffer.swap64 () เพื่อเติมเต็ม swap16 () & amp; swap32 () (ซัค Bjornson) # 7157
- build: มีการเพิ่มตัวเลือกการกำหนดค่าใหม่สำหรับการสร้าง Node.js เป็นไลบรารีที่ใช้ร่วมกัน (Stefan Budeanu) # 6994
- ตัวเลือกคือ: - แชร์, --without-v8-platform & amp; --without-รวม-V8.
- การเข้ารหัสลับ: มีการอัปเดตใบรับรองหลักแล้ว (เบน Noordhuis) # 7363
- ดีบักเกอร์: ที่อยู่เซิร์ฟเวอร์สามารถกำหนดค่าได้ผ่านทาง --debug = :. (Ben Noordhuis) # 3316
- npm: อัพเกรด NPM ไปเป็น v3.10.3 (Kat Marchan) # 7515 & amp; (รีเบคก้าเทอร์เนอร์) # 7410
- readline: เพิ่มตัวเลือก prompt ให้กับ constructor readline (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c จะแยกออกจากลูปแบบไม่ จำกัด โดยไม่ต้องหยุดอินสแตนซ์ Node.js (Anna Henningsen) # 6635
- src:
- เพิ่มโหนด :: FreeEnvironment public C ++ API (เฉิงเจิ้ง) # 3098
- Refactored require ('constants'), ค่าคงที่พร้อมใช้งานจากโมดูลของตนโดยตรง (James M Snell) # 6534
- สตรีม: ปรับปรุง readable.read () ได้ถึง 70% (Brian White) # 7077
- ตัวจับเวลา: setImmediate () ตอนนี้เร็วกว่า 150% ในบางสถานการณ์ (Andras) # 6436
- util: เพิ่มตัวเลือก breakLength เพื่อ util.inspect () เพื่อควบคุมวิธีการจัดรูปแบบอ็อบเจ็กต์ระหว่างเส้น (cjihrig) # 7499
- v8-inspector: มีการเพิ่มการสนับสนุนการทดลองเพื่อแก้จุดบกพร่อง Node.js ผ่านโปรโตคอลผู้ตรวจการ (อาลียาสเชค) # 6792
- หมายเหตุ: คุณลักษณะนี้เป็นแบบทดลองและอาจมีการเปลี่ยนแปลงหรือลบออก
- คุณสามารถลองใช้คุณลักษณะนี้ได้โดยเรียกใช้ Node.js โดยใช้ค่าสถานะ --inspect
- บัฟเฟอร์:
- สร้างตัวสร้างบัฟเฟอร์ใหม่ # 4682 และ # 5833
- ตัวสร้างที่มีอยู่ Buffer () และ SlowBuffer () ถูกเลิกใช้งานในเอกสาร # 4682 และ # 5833
- เลิกใช้ API บัฟเฟอร์ที่เลิกใช้แล้วก่อนหน้า # 5048, # 4594
- ปรับปรุงข้อผิดพลาดในการจัดการ # 4514
- เพิ่มเมธอด Buffer.prototype.lastIndexOf () # 4846 แล้ว
- คลัสเตอร์:
- คนงานที่ปล่อยออกมาเป็นอาร์กิวเมนต์แรกในเหตุการณ์ "ข้อความ" # 5361
- คุณสมบัติ worker.exitedAfterDisconnect จะแทนที่ worker.suicide # 3743
- Console:
- การเรียก console.timeEnd () ด้วยป้ายกำกับที่ไม่รู้จักจะส่งคำเตือนเกี่ยวกับกระบวนการมากกว่าการขว้างปา # 5901
- การเข้ารหัสลับ:
- ปรับปรุงข้อผิดพลาดในการจัดการ # 3100, # 5611
- การผูกคลาสใบรับรองที่ง่ายขึ้น # 5382
- ปรับปรุงการควบคุมโหมด FIPS # 5181
- เลิกใช้งานเกินพิกัดของ pbkdf2 # 4047.
- อ้างอิง:
- รื้อใช้ c-ares สร้างใหม่สนับสนุน # 5775
- V8 อัปเดตเป็น 5.0.71.35 # 6372.
- DNS:
- เพิ่ม dns.resolvePtr () API เพื่อค้นหาระเบียน DNS PTR ธรรมดาของ # 4921
- โดเมน:
- ล้างสแตกเมื่อไม่มีตัวจัดการข้อผิดพลาด # 4659
- กิจกรรม:
- อ็อบเจ็กต์ EventEmitter.prototype._events ไม่รับช่วงจาก Object.prototype # 6092 อีกต่อไป
- เพิ่ม EventEditter.prototype.prependListener () และ EventEmitter.prototype.prependOnceListener () # 6032
- ระบบไฟล์:
- วิธี fs.realpath () และ fs.realpathSync () ได้รับการปรับปรุงเพื่อใช้งานไลบรารี libuv ที่มีประสิทธิภาพมากขึ้น การเปลี่ยนแปลงนี้รวมถึงการลบอาร์กิวเมนต์แคชและวิธีสามารถโยนข้อผิดพลาดใหม่ # 3594
- api FS สามารถยอมรับและส่งคืนเส้นทางเป็นบัฟเฟอร์ # 5616 ได้
- เกิดข้อผิดพลาดในการจัดการและปรับปรุงการตรวจสอบประเภท # 5616, # 5590, # 4518, # 3917
- ส่วนติดต่อสายอักขระของ fs.read เลิกใช้แล้ว # 4525
- http:
- 'clientError' สามารถนำมาใช้เพื่อคืนข้อผิดพลาดที่กำหนดเองจากเซิร์ฟเวอร์ HTTP # 4557
- โมดูล:
- ปัจจุบันไดเรกทอรีปัจจุบันมีการจัดลำดับความสำคัญสำหรับการค้นหาในท้องถิ่น # 5689
- ลิงก์สัญลักษณ์จะถูกเก็บรักษาไว้เมื่อต้องใช้โมดูล # 5950
- สุทธิ:
- คำแนะนำ DNS ไม่ได้ตั้งค่าไว้ที่ # 6021 อีกต่อไป
- ปรับปรุงข้อผิดพลาดในการจัดการและตรวจสอบประเภท # 5981, # 5733, # 2904
- OS X:
- MACOSX_DEPLOYMENT_TARGET ถูกชนสูงสุด 10.7 # 6402
- เส้นทาง:
- ตรวจสอบประเภทที่ปรับปรุงแล้ว # 5348
- กระบวนการ:
- แนะนำคำเตือนเกี่ยวกับกระบวนการ API # 4782
- ยกเว้นข้อยกเว้นเมื่อไม่มีฟังก์ชันส่งต่อไปที่ nextTick # 3860
- Querystring:
- ออปเจ็กต์ที่ส่งกลับโดย querystring.parse () จะไม่รับช่วงจาก Object.prototype # 6055 อีกต่อไป
- Readline:
- ข้อมูลสำคัญจะถูกส่งโดยไม่มีเงื่อนไข # 6024
- ขณะนี้คุณสามารถปิดใช้งานประวัติได้อย่างชัดเจน # 6352
- REPL:
- การโอนไปยัง _ จะปล่อยคำเตือน # 5535
- นิพจน์จะไม่สมบูรณ์เมื่อ eval ไม่ทำงาน # 6328
- จับเวลา:
- ไม่สามารถเริ่มต้นใหม่เมื่อการเรียกกลับไม่ได้เป็นฟังก์ชัน # 4362
- Streams:
- null เป็นส่วนที่ไม่ถูกต้องในการเขียนในโหมดออบเจ็กต์ # 6170
- TLS:
- เปลี่ยนชื่อ 'clientError' เป็น 'tlsClientError' # 4557
- SHA1 ใช้สำหรับ sessionIdContext # 3866
- TTY:
- กระดาษห่อหุ้ม setRawMode เลิกใช้ก่อนหน้านี้จะถูกนำออก # 2528
- URL:
- ชื่อผู้ใช้และรหัสผ่านจะถูกลดลงโดย url.resolve () ถ้าโฮสต์มีการเปลี่ยนแปลง # 1480
- Util:
- เปลี่ยนเป็น Error formatting # 4582
- วิธีการ util._extend () เลิกใช้แล้ว # 4903
- วิธีการ util.log () เลิกใช้แล้ว # 6161
- ของ Windows:
- Windows XP และ Vista ไม่ได้รับการสนับสนุน # 5167 อีกต่อไป
- zlib:
- มีการปรับปรุงหลายอย่างในการประมวลผล Zlib # 5883 และ # 5707
- หลาม
มีอะไรใหม่ ในเวอร์ชัน 10.0.0:
มีอะไรใหม่ ในเวอร์ชัน:
มีอะไรใหม่ ในเวอร์ชัน 9.2.0:
มีอะไรใหม่ ในเวอร์ชัน 8.5.0:
มีอะไรใหม่ ในเวอร์ชัน 8.3.0:
มีอะไรใหม่ ในเวอร์ชัน 8.1.3:
มีอะไรใหม่ ในเวอร์ชัน 8.1.2:
มีอะไรใหม่ ในเวอร์ชัน 7.7.1:
มีอะไรใหม่ ในเวอร์ชัน 7.4.0:
มีอะไรใหม่ ในเวอร์ชัน 7.2.1:
มีอะไรใหม่ ในเวอร์ชัน 7.2.0:
มีอะไรใหม่ ในเวอร์ชัน 6.4.0:
มีอะไรใหม่ ในเวอร์ชัน 6.3.0:
มีอะไรใหม่ ในเวอร์ชัน 6.0.0:
ต้องการ
ความคิดเห็นที่ไม่พบ