Apple 开源了一个新的配置文件格式 pkl - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pocarisweat

Apple 开源了一个新的配置文件格式 pkl

  •  
  •   pocarisweat 2024 年 2 月 4 日 2404 次点击
    这是一个创建于 812 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://pkl-lang.org

    https://github.com/apple/pkl

    可以定义类型,带 Schema Check ,可以像 Protobuf 一样生成 Java 、Go 、Swift 和 Kotlin 代码,也可以生成 YAML 、JSON 、XML 和 properties.

    好玩的是这个项目并不是用 Swift 写的,而是 Java. 苹果包括 iCloud 在内的后端服务应该大量用到了 Java

    10 条回复    2024-02-05 09:57:12 +08:00
    stinkytofu
        1
    stinkytofu  
       2024 年 2 月 4 日
    对比 JSON 也就省了几个引号, 真有必要再搞一种格式么。
    learnshare
        2
    learnshare  
       2024 年 2 月 4 日
    有点像 QML 的风格
    NnMmOo
        3
    NnMmOo  
       2024 年 2 月 4 日
    Apple 开始走向衰败
    Vegetable
        4
    Vegetable  
       2024 年 2 月 4 日
    首页上的例子我看来,除了 plist ,其他家大差不差。我更倾向于这是 apple 觉得自己的 plist 用着不爽,弄了个新的。
    hash
        5
    hash  
       2024 年 2 月 4 日
    类 XML 的文件结构确实过时了
    Orchestraa
        6
    Orchestraa  
       2024 年 2 月 4 日 via iPhone   1
    所以以后看到一个 .pkl 还得犹豫下是配置文件还是 pickle 了
    zhusimaji
        7
    zhusimaji  
       2024 年 2 月 4 日 via iPhone
    乍一看以为是 python pkl 序列化
    nagisaushio
        8
    nagisaushio  
       2024 年 2 月 4 日   1
    ivvei
        9
    ivvei  
       2024 年 2 月 4 日 via Android
    配置文件的 programmable 我认为是邪路。配置文件最多支持一个变量替换就行了,搞太复杂就失去了配置文件的意义,和程序里直接硬编码有多大区别的
    secondwtq
        10
    secondwtq  
       2024 年 2 月 5 日
    楼主提到了 Apple 的后端服务,我感觉这个项目的关键点应该是可以转换成多种已有格式。我的猜测是 Apple 可能用了一堆开源项目,不同开源项目有不同的配置格式,本身量又多,就搞了一个这玩意统一管理。其他的 feature 都是围绕这个目的做的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2931 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 03:08 PVG 11:08 LAX 20:08 JFK 23:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86