mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
update README
This commit is contained in:
parent
7261cd19b7
commit
b7579f5f7d
30
README.md
30
README.md
@ -1,19 +1,23 @@
|
|||||||

|

|
||||||
|
|
||||||
A system programming language which prioritizes optimality, safety, and
|
A programming language which prioritizes optimality, robustness, and
|
||||||
readability.
|
clarity.
|
||||||
|
|
||||||
Zig is a small, simple language, yet powerful. Zig fits into the same niche
|
|
||||||
as C, except does everything better.
|
|
||||||
|
|
||||||
Zig ships with a build system that obviates the need for a configure script
|
|
||||||
or a makefile. In fact, existing C and C++ projects may choose to depend on
|
|
||||||
Zig instead of e.g. cmake.
|
|
||||||
|
|
||||||
[ziglang.org](http://ziglang.org)
|
[ziglang.org](http://ziglang.org)
|
||||||
|
|
||||||
## Feature Highlights
|
## Feature Highlights
|
||||||
|
|
||||||
|
* Small, simple language. Focus on debugging your application rather than
|
||||||
|
debugging your knowledge of your programming language.
|
||||||
|
* Ships with a build system that obviates the need for a configure script
|
||||||
|
or a makefile. In fact, existing C and C++ projects may choose to depend on
|
||||||
|
Zig instead of e.g. cmake.
|
||||||
|
* A fresh take on error handling which makes writing correct code easier than
|
||||||
|
writing buggy code.
|
||||||
|
* Debug mode optimizes for fast compilation time and crashing with a stack trace
|
||||||
|
when undefined behavior *would* happen.
|
||||||
|
* Release mode produces heavily optimized code. What other projects call
|
||||||
|
"Link Time Optimization" Zig does automatically.
|
||||||
* Compatible with C libraries with no wrapper necessary. Directly include
|
* Compatible with C libraries with no wrapper necessary. Directly include
|
||||||
C .h files and get access to the functions and symbols therein.
|
C .h files and get access to the functions and symbols therein.
|
||||||
* Provides standard library which competes with the C standard library and is
|
* Provides standard library which competes with the C standard library and is
|
||||||
@ -23,9 +27,6 @@ Zig instead of e.g. cmake.
|
|||||||
* Tagged union type instead of raw unions.
|
* Tagged union type instead of raw unions.
|
||||||
* Generics so that one can write efficient data structures that work for any
|
* Generics so that one can write efficient data structures that work for any
|
||||||
data type.
|
data type.
|
||||||
* Provides an error type with several syntatic constructs which makes writing
|
|
||||||
robust code convenient and straightforward. Writing correct code is easier
|
|
||||||
than writing buggy code.
|
|
||||||
* No header files required. Top level declarations are entirely
|
* No header files required. Top level declarations are entirely
|
||||||
order-independent.
|
order-independent.
|
||||||
* Compile-time code execution. Compile-time reflection.
|
* Compile-time code execution. Compile-time reflection.
|
||||||
@ -33,16 +34,11 @@ Zig instead of e.g. cmake.
|
|||||||
a preprocessor or macros.
|
a preprocessor or macros.
|
||||||
* The binaries produced by Zig have complete debugging information so you can,
|
* The binaries produced by Zig have complete debugging information so you can,
|
||||||
for example, use GDB to debug your software.
|
for example, use GDB to debug your software.
|
||||||
* Debug mode optimizes for fast compilation time and crashing with a stack trace
|
|
||||||
when undefined behavior *would* happen.
|
|
||||||
* Release mode produces heavily optimized code. What other projects call
|
|
||||||
"Link Time Optimization" Zig does automatically.
|
|
||||||
* Mark functions as tests and automatically run them with `zig test`.
|
* Mark functions as tests and automatically run them with `zig test`.
|
||||||
* Friendly toward package maintainers. Reproducible build, bootstrapping
|
* Friendly toward package maintainers. Reproducible build, bootstrapping
|
||||||
process carefully documented. Issues filed by package maintainers are
|
process carefully documented. Issues filed by package maintainers are
|
||||||
considered especially important.
|
considered especially important.
|
||||||
* Cross-compiling is a primary use case.
|
* Cross-compiling is a primary use case.
|
||||||
* Zig Build System competes with make, cmake, autotools, SCons, etc.
|
|
||||||
* In addition to creating executables, creating a C library is a primary use
|
* In addition to creating executables, creating a C library is a primary use
|
||||||
case. You can export an auto-generated .h file.
|
case. You can export an auto-generated .h file.
|
||||||
* Standard library supports Operating System abstractions for:
|
* Standard library supports Operating System abstractions for:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user