1. White Paper
    ❱
    1. Efficient Programming
      ❱
      1. Multi-Paradigm
      2. Type Extension
      3. Type Inference
      4. Other Modern Features and Syntactic Sugar
    2. Security and Reliability
      ❱
      1. Static Type and Garbage Collection
      2. Null Reference Safety
      3. Value Type
      4. Immutability First
      5. Closed by Default
      6. try-with-resources
      7. Dynamic Security Check
      8. Obfuscation
    3. Easy Concurrency
      ❱
      1. Lightweight Thread Model
      2. Lock-Free Concurrent Object
    4. Excellent Performance
      ❱
      1. Static Compilation Optimization
      2. Value Type Optimization
      3. Fully-Concurrent Sorting GC
      4. Lightweight Runtime
    5. Agile Expansion
      ❱
      1. Native Syntax Extension Capability
      2. Macros
      3. Agile Extension Case: Declarative UI
    6. Tool Support
      ❱
      1. Package Manager
      2. Debugger
      3. Cangjie Testing Infrastructure
      4. IDE Plug-in
    7. Future Work Plan
      ❱
      1. AI Native Application Development
      2. DSL KIT
      3. Actor and Distributed Programming
      4. IDE AI Enablement
      5. Visualized Concurrent and Parallel Program Tuning
  2. Specification
    ❱
    1. Lexical Structure
    2. Types
    3. Names, Scopes, Variables, and Modifiers
    4. Expressions
    5. Functions
    6. Classes and Interfaces
    7. Properties
    8. Extensions
    9. Generics
    10. Overloading
    11. Packages and Modules
    12. Exceptions
    13. Cross-Language Interoperability
    14. Metaprogramming
    15. Concurrency
    16. Constant Evaluation
    17. Annotation
    18. Cangjie Syntax
  3. Development Guide
    ❱
    1. Getting Started with Cangjie
      ❱
      1. Getting Started with Cangjie
      2. Installing the Cangjie Toolchain
      3. Running the First Cangjie Program
    2. Basic Concepts
      ❱
      1. Identifiers
      2. Program Structure
      3. Expressions
      4. Functions
    3. Basic Data Types
      ❱
      1. Integer
      2. Floating Point
      3. Boolean
      4. Character
      5. String
      6. Tuple
      7. Array
      8. Range
      9. Unit
      10. Nothing
    4. Functions
      ❱
      1. Function Definition
      2. Function Call
      3. Function Type
      4. Nested Function
      5. Lambda Expression
      6. Closure
      7. Syntactic Sugar in a Function Call
      8. Function Overloading
      9. Operator Overloading
      10. const Function and Constant Evaluation
    5. Structure Types
      ❱
      1. Defining a struct Type
      2. Creating a struct Instance
      3. mut Function
    6. Enum and Pattern Match
      ❱
      1. Enum
      2. Option Type
      3. Pattern Overview
      4. Refutability of Patterns
      5. match Expression
      6. if-let Expression
      7. while-let Expression
      8. Other Places to Use Patterns
    7. Classes and Interfaces
      ❱
      1. Classes
      2. Interfaces
      3. Properties
      4. Subtype Relationships
      5. Type Conversions
    8. Generics
      ❱
      1. Generic Overview
      2. Generic Functions
      3. Generic Interfaces
      4. Generic Classes
      5. Generic Structs
      6. Generic Enums
      7. Subtype Relationship of a Generic Type
      8. Type Alias
      9. Generic Constraints
    9. Extensions
      ❱
      1. Extension Overview
      2. Direct Extensions
      3. Interface Extensions
      4. Access Rules
    10. Collection Types
      ❱
      1. Basic Collection Type Overview
      2. ArrayList
      3. HashSet
      4. HashMap
      5. Iterable and Collections
    11. Packages
      ❱
      1. Package Overview
      2. Package Declaration
      3. Visibility of Top-Level Declarations
      4. Package Import
      5. Program Entry
    12. Exceptions
      ❱
      1. Defining Exceptions
      2. Throwing and Handling Exceptions
      3. Common Runtime Exceptions
      4. Using Options
    13. Concurrent Programming
      ❱
      1. Concurrency Overview
      2. Creating a Thread
      3. Accessing a Thread
      4. Terminating a Thread
      5. Synchronization Mechanism
      6. Thread Sleep Duration
    14. Basic I/O Operations
      ❱
      1. I/O Stream Overview
      2. I/O Node Streams
      3. I/O Processing Streams
    15. Network Programming
      ❱
      1. Network Programming Overview
      2. Socket Programming
      3. HTTP Programming
      4. WebSocket Programming
    16. Macro
      ❱
      1. Macro Overview
      2. Token Types and quote Expressions
      3. Syntax Nodes
      4. Macro Implementation
      5. Compiling, Error Reporting, and Debugging
      6. Defining and Importing Macro Packages
      7. Built-in Compilation Flags
      8. Practical Cases
    17. Reflections and Annotations
      ❱
      1. Dynamic Features
      2. Annotations
    18. Cross-Language Interoperability
      ❱
      1. Cangjie-C Interoperability
      2. Cangjie–ArkTS Interoperability
    19. Compilation and Building
      ❱
      1. cjc Usage
      2. Introduction to cjpm
      3. Conditional Compilation
    20. Appendix
      ❱
      1. cjc Compilation Options
      2. Installation and Support of Toolchain on Linux
      3. Runtime Environment Variable User Guide
      4. Keywords
      5. Operators
      6. Operator Functions
      7. TokenKind Type
  4. API Reference
    ❱
    1. std Module
      ❱
      1. std Module
      2. std.core Package
        ❱
        1. core Package
        2. Function
        3. Type Alias
        4. Built-in Type
        5. Interface
        6. Class
        7. Enumeration
        8. Struct
        9. Exception Class
        10. Sample Tutorial
          ❱
          1. Cangjie Concurrent Programming Example
          2. Example of Interaction Between CString and C Language Code
      3. std.argopt Package
        ❱
        1. argopt Package
        2. Class
        3. Sample Tutorial
          ❱
          1. Parsing Long Command Line Parameters
          2. Parsing Short Command Line Parameters
      4. std.ast Package
        ❱
        1. ast Package
        2. Function
        3. Interface
        4. Class
        5. Enumeration
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. Macro With Context
          2. Syntax Tree Node Print
          3. AST Object Operation Example
          4. Example of Parsing Cangjie Source Code into an AST Object
          5. User-defined Error Reporting API
          6. Example of Traversing AST Objects Using a User-defined Access Function
      5. std.binary Package
        ❱
        1. binary Package
        2. Interface
      6. std.collection Package
        ❱
        1. collection Package
        2. Function
        3. Interface
        4. Class
        5. Struct
        6. Exception Class
        7. Sample Tutorial
          ❱
          1. append and insert functions of ArrayList
          2. get and set functions of ArrayList
          3. remove, clear, and slice functions of ArrayList
          4. get, put, and contains functions of HashMap
          5. putAll, remove, and clear functions of HashMap
          6. put, iterator, and remove functions of HashSet
          7. Iterator Operation Function
      7. std.collection.concurrent Package
        ❱
        1. collection.concurrent Package
        2. Interface
        3. Class
        4. Sample Tutorial
          ❱
          1. ConcurrentHashMap Usage Example
          2. NonBlockingQueue Usage Example
      8. std.console Package
        ❱
        1. console Package
        2. Class
        3. Sample Tutorial
          ❱
          1. Console Example
      9. std.convert Package
        ❱
        1. convert Package
        2. Interface
        3. Sample Tutorial
          ❱
          1. covert Usage Example
      10. std.crypto.cipher Package
        ❱
        1. crypto.cipher Package
        2. Interface
      11. std.crypto.digest Package
        ❱
        1. crypto.digest Package
        2. Function
        3. Interface
      12. std.database.sql Package
        ❱
        1. database.sql Package
        2. Interface
        3. Class
        4. Enumeration
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. Example of Implementing the Query Function for a Database Driver
          2. Example of Obtaining Database Connection
          3. Example of Deleting and Creating a Table
          4. Example of Executing Database Operation Statements
          5. Example of Executing Transaction Control Statements
      13. std.ffi.python Package
        ❱
        1. ffi.python Package
        2. Constants and Variables
        3. Interface
        4. Class
        5. Exception Class
      14. std.format Package
        ❱
        1. format Package
        2. Interface
        3. Sample Tutorial
          ❱
          1. format Usage Example
      15. std.fs Package
        ❱
        1. fs Package
        2. Class
        3. Enumeration
        4. Struct
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. Directory Example
          2. File Example
          3. FileInfo Example
          4. Path Example
      16. std.io Package
        ❱
        1. io Package
        2. Interface
        3. Class
        4. Enumeration
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. BufferedInputStream Example
          2. BufferedOutputStream Example
          3. ByteArrayStream Example
          4. ChainedInputStream Example
          5. MultiOutputStream Example
          6. StringReader Example
          7. StringWriter Example
      17. std.log Package
        ❱
        1. log Package
        2. Interface
        3. Class
        4. Enumeration
        5. Sample Tutorial
          ❱
          1. Log Printing Example
      18. std.math Package
        ❱
        1. math Package
        2. Function
        3. Interface
        4. Enumeration
        5. Sample Tutorial
          ❱
          1. Example of Basic Mathematical Operations
      19. std.math.numeric Package
        ❱
        1. math.numeric Package
        2. Function
        3. Enumeration
        4. Struct
        5. Sample Tutorial
          ❱
          1. Example of Basic Mathematical Operations of BigInt
          2. Example of Basic Attributes of BigInt
          3. Example of Size Comparison of BigInt
          4. Example of Basic Mathematical Operations of Decimal
          5. Example of Basic Attributes of Decimal
          6. Example of Size Comparison of Decimal
      20. std.objectpool Package
        ❱
        1. objectpool Package
        2. Class
      21. std.os Package
        ❱
        1. os Package
        2. Function
      22. std.os.posix Package
        ❱
        1. os.posix Package
        2. Constants and Variables
        3. Function
        4. Sample Tutorial
          ❱
          1. Operations Related to File Content
          2. Operations Related to File Information
          3. Obtaining System Information
          4. Operations Related to Process Information
      23. std.os.process Package
        ❱
        1. os.process Package
        2. Class
        3. Enumeration
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. Operations Related to the Current Process
          2. Deleting the Subprocess Executable File after the Subprocess Ends on Windows
          3. Operations Related to Any Process
          4. Operations Related to Subprocesses
      24. std.overflow Package
        ❱
        1. overflow Package
        2. Interface
        3. Exception Class
        4. Sample Tutorial
          ❱
          1. Example of the Returning Option Policy
          2. Example of the Saturating Policy
          3. Example of the Throwing Exception Policy
          4. Example of the Most Significant Bit Truncation Policy
      25. std.random Package
        ❱
        1. random Package
        2. Class
      26. std.reflect Package
        ❱
        1. reflect Package
        2. Function
        3. Class
        4. Enumeration
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. Usage of Annotation
          2. Usage of Dynamic Loading
          3. Usage of Member Information
          4. Usage of TypeInfo
      27. std.regex Package
        ❱
        1. regex Package
        2. Class
        3. Struct
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. Regex Example
      28. std.runtime Package
        ❱
        1. runtime Package
        2. Function
        3. Struct
      29. std.socket Package
        ❱
        1. socket Package
        2. Constants and Variables
        3. Interface
        4. Class
        5. Enumeration
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. Usage Cases of Attribute Configuration
          2. TCP Usage Example
          3. UDP Usage Example
          4. UNIX Usage Example
          5. UnixDatagram Usage Example
      30. std.sort Package
        ❱
        1. sort Package
        2. Function
        3. Interface
        4. Sample Tutorial
          ❱
          1. Sorting Arrays
      31. std.sync Package
        ❱
        1. sync Package
        2. Constants and Variables
        3. Function
        4. Interface
        5. Class
        6. Enumeration
        7. Struct
        8. Exception Class
        9. Sample Tutorial
          ❱
          1. Usage of Atomic, Monitor, and Timer
      32. std.time Package
        ❱
        1. time Package
        2. Interface
        3. Class
        4. Enumeration
        5. Struct
        6. Exception Class
        7. Sample Tutorial
          ❱
          1. DateTime Comparison
          2. Conversion Between DateTime and String
          3. Obtaining the Date-Time Information
          4. Local Time of a Time in Different Time Zones
          5. Using MonoTime for Timing
      33. std.unicode Package
        ❱
        1. unicode Package
        2. Interface
      34. std.unittest Package
        ❱
        1. unittest Package
        2. Function
        3. Interface
        4. Class
        5. Enumeration
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. Getting Started with Unittest
          2. Basic Concepts and Usage of Unittest
          3. Parameterized Test
          4. Dynamic Test
      35. std.unittest.mock Package
        ❱
        1. unittest.mock Package
        2. Function
        3. Interface
        4. Class
        5. Enumeration
        6. Exception Class
        7. Sample Tutorial
          ❱
          1. Getting Started with the Mock Framework
          2. Basic Concepts and Usage of Mock
          3. Guide to Stubs
          4. Verification API of Mock Framework
      36. std.unittest.mock.mockmacro Package
        ❱
        1. unittest.mock.mockmacro Package
        2. Macro
      37. std.unittest.testmacro Package
        ❱
        1. unittest.testmacro Package
        2. Macro
      38. std.unittest.common Package
        ❱
        1. unittest.common Package
        2. Function
        3. Interface
        4. Class
        5. Enumeration
      39. std.unittest.diff
        ❱
        1. unittest.diff Package
        2. Interface
      40. std.unittest.prop_test
        ❱
        1. unittest.prop_test Package
        2. Function
        3. Interface
        4. Class
        5. Struct
    2. compress Module
      ❱
      1. compress Module
      2. compress.zlib Package
        ❱
        1. zlib Package
        2. Class
        3. Enumeration
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. Compression and Decompression of Data in Deflate Format
          2. Compression and Decompression of Data in Gzip Format
    3. crypto Module
      ❱
      1. crypto Module
      2. crypto.crypto Package
        ❱
        1. crypto Package
        2. Class
        3. Struct
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. SecureRandom Usage
          2. SM4 Usage
      3. crypto.digest Package
        ❱
        1. digest Package
        2. Class
        3. Struct
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. digest Usage
      4. crypto.keys Package
        ❱
        1. keys Package
        2. Class
        3. Enumeration
        4. Struct
        5. Sample Tutorial
          ❱
          1. Usage of keys
      5. crypto.x509 Package
        ❱
        1. x509 Package
        2. Type Alias
        3. Interface
        4. Class
        5. Enumeration
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. x509 Usage
    4. encoding Module
      ❱
      1. encoding Module
      2. encoding.base64 Package
        ❱
        1. base64 Package
        2. Function
        3. Sample Tutorial
          ❱
          1. Conversion Between Byte Arrays and Base64
      3. encoding.hex Package
        ❱
        1. hex Package
        2. Function
        3. Sample Tutorial
          ❱
          1. Conversion Between Byte Arrays and Hex
      4. encoding.json Package
        ❱
        1. json Package
        2. Interface
        3. Class
        4. Enumeration
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. JsonArray Usage Example
          2. Conversion between JsonValue and String
          3. Conversion Between JsonValue and DataModel
      5. encoding.json.stream Package
        ❱
        1. json.stream Package
        2. Interface
        3. Class
        4. Enumeration
        5. Struct
        6. Sample Tutorial
          ❱
          1. Deserialization Using Json Stream
          2. Serialization Using Json Stream
          3. WriteConfig Usage Example
      6. encoding.url Package
        ❱
        1. url Package
        2. Class
        3. Exception Class
        4. Sample Tutorial
          ❱
          1. Form Construction and Usage
          2. Usage of the URL Parsing Function parse
    5. fuzz Module
      ❱
      1. fuzz Module
      2. fuzz.fuzz Package
        ❱
        1. fuzz Package
        2. Constants and Variables
        3. Class
        4. Exception Class
        5. Sample Tutorial
          ❱
          1. Testing the Function of Guessing Characters
          2. Usage of the cj-fuzz Function by CJVM
          3. Testing by Using the DataProvider Function
          4. Using FakeCoverage to Prevent Abnormal Termination of Fuzzing in DataProvider Mode
          5. Printing the Usage of Fuzz
          6. Experimental Feature - Coverage Information Printing
          7. Solution to Missing Stack Backtracking
    6. log Module
      ❱
      1. log Module
      2. log Package
        ❱
        1. log Package
        2. Type Alias
        3. Function
        4. Interface
        5. Class
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. Log Printing Example
    7. net Module
      ❱
      1. net Module
      2. net.http Package
        ❱
        1. http Package
        2. Function
        3. Interface
        4. Class
        5. Enumeration
        6. Struct
        7. Exception Class
        8. Sample Tutorial
          ❱
          1. client
          2. cookie
          3. log
          4. server
          5. webSocket
      3. net.tls Package
        ❱
        1. tls Package
        2. Class
        3. Enumeration
        4. Struct
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. Certificate and Public Key on the Server Stored in the Same File
          2. Client Example
          3. Certificate Hot Update
          4. Server Example
    8. serialization Module
      ❱
      1. serialization Module
      2. serialization.serialization Package
        ❱
        1. serialization Package
        2. Function
        3. Interface
        4. Class
        5. Exception Class
        6. Sample Tutorial
          ❱
          1. class Serialization and Deserialization
          2. HashSet and HashMap Serialization
  5. Tools Guide
    ❱
    1. IDE Plug-in User Guide
    2. Command Line Tool Usage Guide
      ❱
      1. Package Manager
      2. Debugging Tool
      3. Formatting Tool
      4. Coverage Statistics Tool
      5. Performance Analyzer
      6. Exception Stack Restoration Tool

I/O Node Streams